我需要使用添加线在几个城市之间画一条线。城市坐标取自列表。但是,我不知道我应该如何输入结束坐标。 到目前为止,这是代码:
def a2level1():
cityXCoordinate=[ 43, 93,180,205,254,310,326,348,372,398]
cityYCoordinate=[308,145, 82,199,335,373,432,346,333,263]
map = makePicture()
show(map)
cities = [requestInteger("Enter the number of cities you would like to visit")]
for number in cities:
print number
for number in range(0,number):
print number
city = [requestInteger("Please choose a city number")]
while city <= number:
city = [requestInteger("Please choose a city number")]
addLine(map,cityXCoordinate[city],cityYCoordinate[city], cityXCoordinate[city], cityYCoordinate[city])
repaint(map)
答案 0 :(得分:0)
我分别命名两个城市的x和y坐标,并将它们缩小以便于阅读:
#addLine(map,cityXCoordinate[city],cityYCoordinate[city],
#cityXCoordinate[city], cityYCoordinate[city])
cityXCoordinate1= x1
cityYCoordinate1 = y1
cityXCoordinate2 = x2
cityYCoordinate2 = y2
在这种情况下,我不是重新绘制图像,而是创建第二张图像,因此第一张图像不会被覆盖,这是您的选择。
#Find the max height and width of your map
w= getWidth (map)
h = getHeight(map)
newPic = makeEmptyPicture(w,h)
#loop through the coordinates of the map
for y in range (0,h):
for x in range (0, w):
#select the points forming a straight line between the two points
if (x==((y-y1)*(x2-x1)/(y2-y1)+x1)):
newPxl= getPixel(newPic,x,y)
#color those pixels black
color = makeColor(0,0,0)
setColor (newPxl, color)
else:
#color the remaining map as it is
pxl = getPixel(pic, x, y)
newPxl= getPixel(newPic,x,y)
color = getColor(pxl)
setColor (newPxl, color)