昨非 发表于 2020-8-30 11:12:45

tk 五星红旗

本帖最后由 昨非 于 2020-9-20 09:08 编辑

别问,问就是拿(闲)头(的)算(蛋)的(疼)

咳咳,昨天刚刚看到tkinter的canvas,小甲鱼老师画了个星星,一时兴(脑)起(瘫){:10_245:}

注:代码毫无技术含量,分享出来只是觉得比较有意思,权当给大家讲个笑话:竟然有个铁憨憨拿tk画国旗{:10_266:} {:10_266:} {:10_266:}

国旗标准规格:
https://s1.ax1x.com/2020/08/30/dbnUSA.jpg

我的效果图:
https://s1.ax1x.com/2020/08/30/dbnzTO.png

代码如下:

"""
tkinter.canvas
中华人民共和国国旗是五星红旗:旗面为红色,长方形,其长与高为三与二之比,
旗面左上方缀黄色五角星五颗。一星较大,其外接圆直径为旗高十分之三,居左;
四星较小,其外接圆直径为旗高十分之一,环拱于大星之右
作者:昨非
"""
import tkinter as tk
import math as m

root = tk.Tk()

w = tk.Canvas(root,width=600,height=400,background="red") #旗面
w.pack()

center_x_1 = 100#主星
center_y_1 = 100
r1 = 60 #主星半径
star1=[
      #左上点
      center_x_1 - int(r1*m.sin(2*m.pi/5)),
      center_y_1 - int(r1*m.cos(2*m.pi/5)),      
      #右上点
      center_x_1 + int(r1*m.sin(2*m.pi/5)),
      center_y_1 - int(r1*m.cos(2*m.pi/5)),      
      #左下点
      center_x_1 - int(r1*m.sin(m.pi/5)),
      center_y_1 + int(r1*m.cos(m.pi/5)),      
      #顶点
      center_x_1,
      center_y_1 - r1,      
      #右下点
      center_x_1 + int(r1*m.sin(m.pi/5)),
      center_y_1 + int(r1*m.cos(m.pi/5)),      
      ]

r2 = 20#副星半径
center_x_2 = 200 #副星一
center_y_2 = 40
star2=[
       #左上点
      center_x_2 - int(r2*m.cos(2*m.pi/5+m.atan(0.6))),#√
      center_y_2 + int(r2*m.sin(2*m.pi/5+m.atan(0.6))),#√      
      #右上点
      center_x_2 - int(r2*m.cos(2*m.pi/5-m.atan(0.6))),#√
      center_y_2 - int(r2*m.sin(2*m.pi/5-m.atan(0.6))),#√      
      #左下点
      center_x_2 + int(r2*m.cos(m.pi/5-m.atan(0.6))),
      center_y_2 + int(r2*m.sin(m.pi/5-m.atan(0.6))),      
      #顶点
      center_x_2 - int(r2*m.cos(m.atan(0.6))), #√
      center_y_2 + int(r2*m.sin(m.atan(0.6))), #√      
      #右下点
      center_x_2 + int(r2*m.cos(m.pi/5+m.atan(0.6))),
      center_y_2 - int(r2*m.sin(m.pi/5+m.atan(0.6))),   
       ]

center_x_3 = 240#副星二
center_y_3 = 80
star3=[
       #左上点
      center_x_3 - int(r2*m.cos(2*m.pi/5+m.atan(1/7))),#√
      center_y_3 + int(r2*m.sin(2*m.pi/5+m.atan(1/7))),#√      
      #右上点
      center_x_3 - int(r2*m.cos(2*m.pi/5-m.atan(1/7))),#√
      center_y_3 - int(r2*m.sin(2*m.pi/5-m.atan(1/7))),#√      
      #左下点
      center_x_3 + int(r2*m.cos(m.pi/5-m.atan(1/7))),#√
      center_y_3 + int(r2*m.sin(m.pi/5-m.atan(1/7))), #√      
      #顶点
      center_x_3 - int(r2*m.cos(m.atan(1/7))), #√
      center_y_3 + int(r2*m.sin(m.atan(1/7))), #√      
      #右下点
      center_x_3 + int(r2*m.cos(m.pi/5+m.atan(1/7))),
      center_y_3 - int(r2*m.sin(m.pi/5+m.atan(1/7))),   
       ]

center_x_4 = 240#副星三
center_y_4 = 140
star4=[
       #左上点
      center_x_4 - int(r2*m.cos(2*m.pi/5-m.atan(2/7))),
      center_y_4 + int(r2*m.sin(2*m.pi/5-m.atan(2/7))),   
      #右上点
      center_x_4 - int(r2*m.cos(2*m.pi/5+m.atan(2/7))),#√
      center_y_4 - int(r2*m.sin(2*m.pi/5+m.atan(2/7))),#√      
      #左下点
      center_x_4 + int(r2*m.cos(m.pi/5+m.atan(2/7))),
      center_y_4 + int(r2*m.sin(m.pi/5+m.atan(2/7))),      
      #顶点
      center_x_4 - int(r2*m.cos(m.atan(2/7))), #√
      center_y_4 - int(r2*m.sin(m.atan(2/7))), #√      
      #右下点
      center_x_4 + int(r2*m.cos(m.pi/5-m.atan(2/7))),
      center_y_4 - int(r2*m.sin(m.pi/5-m.atan(2/7))),   
       ]

center_x_5 = 200#副星四
center_y_5 = 180
star5=[
       #左上点
      center_x_5 - int(r2*m.cos(2*m.pi/5-m.atan(4/5))),#√
      center_y_5 + int(r2*m.sin(2*m.pi/5-m.atan(4/5))),#√      
      #右上点
      center_x_5 - int(r2*m.cos(2*m.pi/5+m.atan(4/5))),#√
      center_y_5 - int(r2*m.sin(2*m.pi/5+m.atan(4/5))),#√      
      #左下点
      center_x_5 + int(r2*m.cos(m.pi/5+m.atan(4/5))),#√
      center_y_5 + int(r2*m.sin(m.pi/5+m.atan(4/5))), #√      
      #顶点
      center_x_5 - int(r2*m.cos(m.atan(4/5))), #√
      center_y_5 - int(r2*m.sin(m.atan(4/5))), #√      
      #右下点
      center_x_5 + int(r2*m.cos(m.pi/5-m.atan(4/5))),
      center_y_5 - int(r2*m.sin(m.pi/5-m.atan(4/5))),   
       ]

stars=
for star in stars:
    w.create_polygon(star,outline="",fill="yellow")

tk.mainloop()


**** Hidden Message *****

如果你笑了,还请评个分呗{:10_297:}

昨非 发表于 2020-9-19 22:45:46

欢迎到新贴围观+评论+白嫖+评分支持
【详解】python信息管理系统
https://fishc.com.cn/thread-180487-1-1.html
(出处: 鱼C论坛)

开心小傻猪 发表于 2020-8-30 11:38:04

老哥牛逼啊(无yygq{:10_256:})

疾风怪盗 发表于 2020-8-30 11:43:54

感觉TK好复杂,没用过,不知道pyside2能不能画出来这样的

hrp 发表于 2020-8-30 11:53:08

回帖没鱼币

昨非 发表于 2020-8-30 12:05:14

疾风怪盗 发表于 2020-8-30 11:43
感觉TK好复杂,没用过,不知道pyside2能不能画出来这样的

主要视频里讲了tk,emm,表示你说的那个我也没用过

昨非 发表于 2020-8-30 12:05:50

hrp 发表于 2020-8-30 11:53
回帖没鱼币

60%

Mike_福利 发表于 2020-8-30 12:23:05

看看

昨非 发表于 2020-8-30 13:21:12

开心小傻猪 发表于 2020-8-30 11:38
老哥牛逼啊(无yygq)

这表情还不算吗{:10_266:}

开心小傻猪 发表于 2020-8-30 13:21:43

昨非 发表于 2020-8-30 13:21
这表情还不算吗

{:10_256:}{:10_256:}{:10_256:}

lijiachen 发表于 2020-8-30 13:51:35

{:10_256:}{:10_256:}{:10_256:}{:10_256:}{:10_256:}{:10_256:}{:10_256:}{:10_256:}{:10_256:}

wrw5192 发表于 2020-8-30 15:30:51

一方面是练技术,另一方面是表示对祖国的热爱,挺好的
{:10_279:}{:10_254:}{:10_256:}

cdzjf 发表于 2020-8-30 15:36:41

{:10_256:}

昨非 发表于 2020-8-30 16:06:18

wrw5192 发表于 2020-8-30 15:30
一方面是练技术,另一方面是表示对祖国的热爱,挺好的

额,谢谢{:10_266:}

昨非 发表于 2020-8-30 16:08:28

lijiachen 发表于 2020-8-30 13:51


这不评个分再走?(单纯想要贡献){:10_256:}

开心超仁 发表于 2020-8-30 16:33:15

被鱼币吸引进来,被操作折服{:10_256:}

昨非 发表于 2020-8-30 16:35:40

开心超仁 发表于 2020-8-30 16:33
被鱼币吸引进来,被操作折服

别骂了别骂了{:10_266:}

开心超仁 发表于 2020-8-30 16:38:08

昨非 发表于 2020-8-30 16:35
别骂了别骂了

没骂没骂(换个友好的表情){:10_328:}

昨非 发表于 2020-8-30 16:49:44

开心超仁 发表于 2020-8-30 16:38
没骂没骂(换个友好的表情)

{:10_266:}

鱼的七秒记忆 发表于 2020-8-30 18:02:25

{:10_256:}

开心小傻猪 发表于 2020-8-30 18:56:38

昨非 发表于 2020-8-30 13:21
这表情还不算吗

新鱼友无法评分哦{:10_256:}
页: [1] 2 3 4 5
查看完整版本: tk 五星红旗