Итак, я создал повторяющийся узор, используя два разных дизайна. Теперь проблема заключается в создании цветов, поэтому я должен попросить пользователя выбрать 3 разных цвета и использовать их, чтобы сделать определенные области дизайна цветными. Например, я имею в виду, что если бы я выбрал макет патча 5x5, то первые 2 блока шаблонов по горизонтали и ниже должны быть одного цвета (то есть четыре блока) и т. Д.
РЕДАКТИРОВАТЬ: чтобы устранить путаницу.
Так что, если вы посмотрите на 500x500. введите «5», когда он спросит, какой размер патча вы хотите.
вы должны увидеть два разных рисунка.
все, что я хочу, это x = 0 - x = 200, а y = 0 - y = 200 - синего цвета. Это означает, что все в этой области (под областью я имею в виду все рисунки, которые там есть) должно быть синего цвета. Один и тот же цвет следует использовать для x = 300 до x = 500 и y = от 300 до y = 500.
x = 300 до x = 500 и y = 0 до y = 200 должны быть красного цвета, а x = 0 до x = 200 и y = 300 до y = 500 также должны быть красного цвета.
и все, что осталось, это часть «+» в середине, которая должна иметь третий цвет, зеленый.
https://prntscr.com/m48xxd это то, что я имею в виду под цветами. так что верхний левый и нижний правый одинаковые цвета. верхний правый и нижний левый - те же цвета, а «+» - другой цвет.
![5x5 patchwork image](https://i.stack.imgur.com/SBCAt.png)
7. https://prntscr.com/m48xzm вот версия 7x7
![7x7 patchwork image](https://i.stack.imgur.com/bpN1V.png)
Сейчас я просто добавил цвета, чтобы на них было легче смотреть.
Я уже пытался использовать 'getX' и 'getY', но я не могу понять, как это правильно.
from graphics import *
def main():
global patchWorkSize
patchWorkSize = int(input("What patchwork size would you like?"))
if patchWorkSize == 5:
patchWork5()
elif patchWorkSize == 7:
patchWork7()
elif patchWorkSize == 9:
patchWork9()
else:
print('Only patchwork sizes 5, 7 and 9 are avaliable')
def patchWork5():
layout()
for y in range(0,500,100):
for x in range(0,500,200):
for l1 in range(0,100,20):
line = Line(Point(l1+x,0+y), Point(100+x,100-l1+y))
line.draw(win)
for l2 in range(100,0,-20):
line3 = Line(Point(l2+x,100+y), Point(0+x,100-l2+y))
line3.draw(win)
for l3 in range(100,0,-20):
line2 = Line(Point(100+x,0+l3+y), Point(0+l3+x,100+y))
line2.setFill('red')
line2.draw(win)
for l4 in range(0,100,20):
line4 = Line(Point(0+x,100-l4+y), Point(100-l4+x,0+y))
line4.setFill('red')
line4.draw(win)
for e in range(0,500,100):
for t in range(100,500,200):
for o in range(0,500,10):
for c in range(5,100,10):
circle1 = Circle(Point(c+t,5+o+e), 5)
circle1.setFill('blue')
circle1.draw(win)
def patchWork7():
layout()
for y in range(0,700,100):
for x in range(0,700,200):
for l1 in range(0,100,20):
line = Line(Point(l1+x,0+y), Point(100+x,100-l1+y))
line.draw(win)
for l2 in range(100,0,-20):
line3 = Line(Point(l2+x,100+y), Point(0+x,100-l2+y))
line3.draw(win)
for l3 in range(100,0,-20):
line2 = Line(Point(100+x,0+l3+y), Point(0+l3+x,100+y))
line2.setFill('red')
line2.draw(win)
for l4 in range(0,100,20):
line4 = Line(Point(0+x,100-l4+y), Point(100-l4+x,0+y))
line4.setFill('red')
line4.draw(win)
for e in range(0,700,100):
for t in range(100,700,200):
for o in range(0,700,10):
for c in range(5,100,10):
circle1 = Circle(Point(c+t,5+o+e), 5)
circle1.setFill('blue')
circle1.draw(win)
def patchWork9():
layout()
for y in range(0,900,100):
for x in range(0,900,200):
for l1 in range(0,100,20):
line = Line(Point(l1+x,0+y), Point(100+x,100-l1+y))
line.draw(win)
for l2 in range(100,0,-20):
line3 = Line(Point(l2+x,100+y), Point(0+x,100-l2+y))
line3.draw(win)
for l3 in range(100,0,-20):
line2 = Line(Point(100+x,0+l3+y), Point(0+l3+x,100+y))
line2.setFill('red')
line2.draw(win)
for l4 in range(0,100,20):
line4 = Line(Point(0+x,100-l4+y), Point(100-l4+x,0+y))
line4.setFill('red')
line4.draw(win)
for e in range(0,900,100):
for t in range(100,900,200):
for o in range(0,900,10):
for c in range(5,100,10):
circle1 = Circle(Point(c+t,5+o+e), 5)
circle1.setFill('blue')
circle1.draw(win)
def layout():
global win
win = GraphWin('Patchwork',patchWorkSize*100, patchWorkSize*100)
for i in range(0, patchWorkSize*100,100):
line = Line(Point(i,0), Point(i, patchWorkSize*100))
line2 = Line(Point(0,i), Point(patchWorkSize*100, i))
line.draw(win)
line2.draw(win)
main()