python: построение линии, определяющей цвет с помощью функции - PullRequest
1 голос
/ 03 декабря 2011

Я хотел бы нарисовать вектор в Python, определяющий его цвет в соответствии со значением функции (что-то вроде y=f(x)). Например, если длина строки равна единице, в начале (x=0) я хочу заполнить ее синим, а в конце (x=1) красным, используя функцию для определения палитры цветов.

Я пытался посмотреть в Интернете, но безрезультатно.

Кто-нибудь может мне помочь?

Заранее спасибо.

1 Ответ

0 голосов
/ 06 декабря 2011

Для этого вам может понадобиться Python PIL: http://effbot.org/imagingbook/pil-index.htm

Вот простой пример, который поможет вам начать работу после установки PIL:

import Image, ImageDraw
import math

# Create image, giving size and background color
im = Image.new("RGB", (400,400), (0, 128, 128) )

# You will do your drawing in the image through the 'draw' object
draw = ImageDraw.Draw(im)


def f(x):
    return math.sin(3*x)

# One loop alongside the line
for i in xrange( 400 ):
    # and another if you need a different width
    for j in xrange( 196, 204 ):

        # Calculate an x-value in the range 0-1. This is a hack
        # you might need something more general.
        x = i / 400.0


        c = f(x)

        # And calculate the colors from there
        red = int( 256*(1.0-c) ) 
        blue = 256 - red

    im.putpixel( ( i, j ), (red, 0, blue) )

im.save("test.png", "PNG")

КонечноЯ бы не рекомендовал вышеупомянутый подход для чего-либо, требующего производительности, но этого может быть достаточно, чтобы вы не спешили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...