2015-12-22 2 views
-1

Я не знаю, как решить эту ошибку и сделать ее действительной для поплавков. Я хочу нарисовать синусоидальную функцию на изображении, но когда я это делаю, пишу int(math.sin(n)) вместо math.sin(n) Я рисую только линию, а не кривую. Это то, что я писал:целочисленный аргумент, ожидаемый, получил float (при написании синуса)

import math 

from PIL import Image 

j = Image.new("RGB", (200, 100), (0, 80, 200)) 

def sin(j, color): 
    w, h = j.size 
    for x in range(w): 
     n = math.pi 
     j.putpixel((x, (math.sin(n))), color) 

sin(j, (200, 0, 0)) 
+2

, конечно, это линия ... Math.sin (п) константа, так как n является константой ... она не зависит от вашей переменной x –

+1

, вы всегда вычисляете 'sin' pi. – Jasper

+2

Даже если 'n' не является константой,' int (math.sin (n)) 'почти всегда будет равным нулю из-за преобразования в int. – interjay

ответ

1

Вы не меняете свой вход, поэтому результат всегда одинаков:

n = math.pi 
j.putpixel((x, (math.sin(n))), color) 
Смежные вопросы