python画多边形polygon,points数组中元素不能加减运算

阅读: 评论:0

python画多边形polygon,points数组中元素不能加减运算

python画多边形polygon,points数组中元素不能加减运算

简单来说将将对象传进数组,然后将对象的值取出来加减后新建个对象,重新存进新数组,这样polygon就能使用运算后的数组画多边形

import sys
import time
import pygame
from pygame import surface
from pygame._sprite import Groupclass lu:def __init__(self):self.x = selfself.y = selfself.z = selfself.x1=selfself.y1&#lor = selfself.screen = selfself.p=selfdef zhuanhuan(self,x,y,z):shiju = 300self.x1 = shiju * x / zself.y1 = shiju * y / z#p1.append((self.x1, self.y1))#pygame.draw.polygon(screen, (0, 244, 0), self.p)pygame.init()  # 初始化pygame
size = width, height = 600, 600  # 设置窗口大小
screen = pygame.display.set_mode(size)  # 显示窗口
color = (255, 255, 255)
zsx = 220
zsy = 100
zenx = 70
zeny = 600
ysx = 320
ysy = 100
yenx = 570
yeny = 600############################################
f = False
fcclock = pygame.time.Clock()
cjshuzu = []
xsshuzu = []
o = 5
gp = Group()
add = pygame.USEREVENT
pygame.time.set_timer(add, 1)
# for i in range(6):
h1 = lu()
h1.x = 0
h1.y = 0
h1.width = 662
h1.height = 35
h1.screen = screen#h1.chuangjian()
#cjshuzu.append(h1)def you(screen, ystx, ysty, yenx, yeny):hei = (0, 0, 0)start = (ystx, ysty)end = (yenx, yeny)width = 6pygame.draw.aaline(screen, hei, start, end, width)def zuo(screen, zstx, zsty, zenx, zeny):hei = (0, 0, 0)start = (zstx, zsty)end = (zenx, zeny)width = 6pygame.draw.aaline(screen, hei, start, end, width)  # aaline抗锯齿p=[]
p1=[]
p2=[]
p3=[]
cp=[]
def huizhi(x,y,z):shiju=300x1=shiju*x/zy1=shiju*y/zp.append((x1,y1))return x1,y1huizhi(110,30,450)
huizhi(240,30,450)
huizhi(250,130,350)
huizhi(50,130,350)l=lu()#将对象放进数组,数组中的数不能加减,所以才传进对象
l.zhuanhuan(110,30,450)
cp.append(l)
l1=lu()
l1.zhuanhuan(240,30,450)
cp.append(l1)
l2=lu()
l2.zhuanhuan(250,130,350)
cp.append(l2)
l3=lu()
l3.zhuanhuan(50,130,350)
cp.append(l3)for t in range(len(p)):p1.append({'x1': p[t][0], 'y1': p[t][1]})print(p[t][0])points=[(100,130),(200,130),(250,230),(50,230)]
'''pp=[(73, 20.0),
(160, 20.0),
(214, 111),
(42, 111)
]'''
for e in range(len(p1)):p2.append((p1[e]['x1'], p1[e]['y1']))print(p2)print(p,len(p))
print(p1[0]['x1'])
#pygame.draw.polygon(screen,(0, 144, 0),((-22,-80),(44,-80),(57-102),(-28,-102)),0)
#pygame.draw.polygon(screen,(0,144,0),((146,0),(291,106),(236,277),(56,277),(0,106)))
while True:  # 死循环确保窗口一直显示ic=1screen.fill(color)#pygame.draw.polygon(screen, (0, 244, 0), p)fcclock.tick(6)  # 设置图像刷新率,如果刷新率太高,图像闪的太厉害for event in ():  # 遍历所有事件pe == pygame.QUIT:  # 如果单击关闭窗口,则退出it()pygame.quit()exit()pe==pygame.KEYDOWN:if event.key==pygame.K_LEFT:print("ccc")for e in range(len(p1)):p1[e]['x1']=p1[e]['x1']+1print(p1[e]['x1'],"p1")for w in range(len(p1)):p2.append((p1[w]['x1'],p1[w]['y1']))#print(p1[0])#print(p1[0],"p1")''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''for c in range(len(cp)):#将数组中的xy取出来加1,因为数组中的元素不能数学运算,所以才将对象传进数组print(p3,"....")cp[c].x1=cp[c].x1+10p3.append((cp[c].x1,cp[c].y1))#将加1的xy存进新数组print(cp[c].x1,"cp")print(p3, "p3")pygame.draw.polygon(screen, (0, 244, 0), p3)#画多边形 xy用的是传进去的p3pygame.display.update()#p3.clear()#pygame.display.flip()if event.key==pygame.K_a:for c in range(len(cp)):print(p3,"....")cp[c].y1=cp[c].y1+10p3.append((cp[c].x1,cp[c].y1))print(cp[c].y1,"cp")print(p3, "p3")pygame.draw.polygon(screen, (0, 244, 0), p3)pygame.display.update()if event.key==pygame.K_s:for c in range(len(cp)):print(p3,"....")cp[c].y1=cp[c].y1-10p3.append((cp[c].x1,cp[c].y1))print(cp[c].y1,"cp")print(p3, "p3")pygame.draw.polygon(screen, (0, 244, 0), p3)pygame.display.update()zuo(screen, zsx, zsy, zenx, zeny)you(screen, ysx, ysy, yenx, yeny)#pygame.draw.polygon(screen,(0, 144, 0),((-22,-80),(44,-80),(57-102),(-28,-102)))pygame.draw.polygon(screen, (0, 144, 0), points)#pygame.draw.polygon(screen, (0, 244, 0), p)#需要不停画,才能避免被背景覆盖,p3如果增加,会在这里画出增加后的更新图形位置for c in range(len(cp)):print(p3, "....")#cp[c].x1 = cp[c].x1 + 1p3.append((cp[c].x1, cp[c].y1))print(cp[c].x1, "cp")pygame.draw.polygon(screen, (0, 244, 0), p3)pygame.display.update()p3.clear()pygame.display.flip()  # 更新全部显示

本文发布于:2024-01-30 03:35:48,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170655695018947.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:多边形   加减   组中   元素   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23