Нужно нарисовать 3 простых полос Jess Drait

StackOverflow https://stackoverflow.com/questions/19825812

  •  05-07-2022
  •  | 
  •  

Вопрос

Мне нужно сделать три полосы первым, кто должен быть 40% от высоты формы и шириной 256 пикселей, красный компонент постепенно увеличивается с 0-255 и проходит по горизонтальному изображению.

Второе составляет 20% от высоты формы, та же ширина (высота 300), он твердый зеленый

третий составляет 40% от высоты формы, а синий уменьшится с 255-0

Я продолжаю получать ошибки на втором месте для Loop (Rheight, Rheight), пожалуйста, помогите !!

def drawLines():
  height = int(input("Enter Height: "))
  width = 256
  picture = makeEmptyPicture(width,height)
  rheight = height*0.4

  redValue = 0
  for y in range(0,height):
    for x in range(0,width):
      pixel = getPixel(picture, x, y)
      color = makeColor(redValue,0,0)
      setColor(pixel, color)
    redValue = redValue + 50
  explore(picture)


  for y in range(rheight,rheight):    
    for x in range(0, width):         
       pixel = getPixel(picture, x, y)
       color = makeColor(0, 0, 0)      # Change the current pixel to black
       setColor(pixel, color)
  explore(picture)                   

Нет правильного решения

Другие советы

Относительно вашей ошибки:

The error was: 1st arg can't be coerced to int
Inappropriate argument type.
An attempt was made to call a function with a parameter of an invalid type. 
This means that you did something such as trying to pass a string to a method 
that is expecting an integer.

Это потому, что range() потребности функций integers как аргументы.

Когда вы это сделаете rheight = height*0.4, в качестве 0.4 является номером плавающей запятой, интерпретатор Python/Jython вычисляет «высота*0,4» как поплавок. В результате чего «rheight» является поплавком.

Исправить: Вы должны явно cast Значение как целое число:

rheight = int(height*0.4)

Простой способ увеличить значения цвета на один и избежать уровня RHEITH:

def d():
  file = pickAFile()
  pic = makePicture(file)
  w= getWidth(pic)
  h= getHeight(pic)
  show (pic)
  newPic = makeEmptyPicture(w,h)
  for y in range (0 ,h-1):  
    for x in range(0,w-1):
      pixel = getPixel(pic, x, y)
      newPixel = getPixel(newPic,x, y)
      if(y == h*0.4):
        #the red value will increase incrementally by one as the x value increases
        color = makeColor(x,0,0)
      else:
        color = getColor(pixel)
      setColor(newPixel, color)
  writePictureTo(newPic, r"D:\temp.jpg")
  explore(newPic)

Просто варьируйте цвет и горизонтальные или вертикальные значения и параметры по мере необходимости. Следуя этому типу логики даст вам результаты

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top