描点画车动来显示_Python画实物图

Python海龟宝典含200多个原创的用turtle模块制作的创意程序,原名《Python趣味编程200例》。准备参加全国创意编程与智能设计大赛的同学们可以用来做参考。

python描点画车动图

import math
from turtle import *

def fillblack():
    tom.pensize(0)
    tom.penup()
    tom.goto(cors[0]) 
    tom.begin_fill()
    for p in cors:
        tom.goto(p)    
    tom.end_fill()


def draw_oval(a,b=None,width=5,fill=''):
    """ 以角色为中心点画椭圆,这个方法不会根据角色的方向对椭圆进行倾斜,所以速度快.
        a:长半轴,b:短半轴,
        width:边框像素值 
        fill:填充颜色,
        outline:边框颜色        
    """
    

def draw_oval2(a,b=None,width=2,fill=''):
        """以海龟为中心点画椭圆,这个方法会根据角色的方向对椭圆进行倾斜,所以速度慢
            a:长半轴,b:短半轴,
            width:边框像素值 
            fill:填充颜色,如果为空字符串,则无颜色            
        """        
        
def two_point_distance(p1,p2):
    """返回两点之间的距离"""
    a,b = p1
    c,d = p2
    return math.sqrt((a-c)**2 + (b-d)**2)
    
def get_triangle_angle_by_length(a,b,c):
    """a:边1  b:边2 c:边3
       返回ab夹角,ac夹角,bc角度
    """
    bc=math.degrees(math.acos((a*a-b*b-c*c)/(-2*b*c)))   # bc边的夹角
    ac=math.degrees(math.acos((b*b-a*a-c*c)/(-2*a*c)))   # ac边的夹角
    ab=math.degrees(math.acos((c*c-a*a-b*b)/(-2*a*b)))   # ab边的夹角

    return ab,ac,bc         

def get_triangle_angle_by_points(p1,p2,p3):
    """根据三角形的三点得到三个角度"""
    a = two_point_distance(p1,p2)
    b = two_point_distance(p1,p3)
    c = two_point_distance(p3,p2)
    return get_triangle_angle_by_length(a,b,c)

def circle_center(p0, p1, r):
    """得到圆心点坐标"""
    pass

def draw_arc(start,end,radius):
    """两点之间画弧,radius是圆半径"""
    
drawarc = draw_arc 

def draw_arc2(start,end,radius):
    """两点之间画弧,radius是圆半径"""
    pass

drawarc2 = draw_arc2
        
def draw_line(start,end):
    """start:起点坐标,二元组,end终点坐标二元组"""
    tom.penup()
    tom.goto(start)
    tom.pendown()
    tom.goto(end)
drawline = draw_line        # 取别名

def draw_lines():
    am = len(cors)
    for i in range(am-1):
        start = tuple(cors[i])
        end = tuple(cors[i+1])
        drawline(start,end)
drawlines = draw_lines

screen = Screen()

tom = Turtle()
tom.penup()

tom.pensize(2)

# 轮廓
cors = [[-265.0, 44.0], [-250.0, 72.0], [-208.0, 85.0], [-157.0, 124.0], [-44.0, 144.0], [22.0, 143.0], [102.0, 123.0], [172.0, 57.0], [203.0, 43.0], [219.0, 42.0], [244.0, 26.0], [260.0, -2.0], [269.0, -78.0], [269.0, -94.0], [258.0, -113.0], [253.0, -115.0], [-24.0, -137.0], [-82.0, -135.0], [-88.0, -142.0], [-134.0, -144.0], [-147.0, -107.0], [-204.0, -74.0], [-209.0, -81.0], [-249.0, -83.0], [-265.0, -30.0], [-265.0, 33.0], [-264.0, 44.0]]
draw_lines()

# 挡风玻璃
cors = [[-188.0, 102.0], [-157.0, 123.0], [-139.0, 130.0], [-120.0, 129.0], [-110.0, 123.0], [-105.0, 110.0], [-108.0, 42.0], [-48.0, 40.0], [105.0, 45.0], [176.0, 55.0],[107.0, 120.0], [29.0, 120.0], [-64.0, 114.0], [-103.0, 110.0]]
draw_lines()

# 门
cors = [[-193.0, 97.0], [-156.0, 118.0], [-143.0, 123.0], [-126.0, 120.0], [-116.0, 104.0], [-118.0, 79.0], [-118.0, 56.0], [-120.0, 39.0], [-141.0, 19.0], [-148.0, -0.0], [-149.0, -29.0], [-148.0, -89.0], [-146.0, -103.0], [-204.0, -73.0], [-226.0, -61.0], [-234.0, -39.0], [-207.0, -57.0], [-206.0, -45.0], [-219.0, -34.0], [-225.0, -26.0], [-228.0, 2.0], [-231.0, 20.0], [-231.0, 47.0], [-222.0, 65.0], [-208.0, 75.0], [-198.0, 88.0], [-190.0, 97.0]]
draw_lines()

# 门2
cors = [[-168.0, 111.0], [-190.0, 68.0], [-208.0, 54.0], [-211.0, 43.0], [-213.0, 32.0], [-214.0, -4.0], [-207.0, -44.0], [-204.0, -47.0], [-197.0, -41.0], [-196.0, -29.0], [-198.0, 3.0], [-199.0, 27.0], [-178.0, 20.0], [-201.0, 29.0], [-201.0, 34.0], [-202.0, 37.0], [-206.0, 39.0], [-211.0, 39.0]]
draw_lines()


# 前进风
cors =[[-111.0, -28.0], [-77.0, -34.0], [-80.0, -24.0], [-76.0, -21.0], [52.0, -47.0], [63.0, -43.0], [160.0, -36.0], [200.0, -37.0], [205.0, -42.0], [256.0, -7.0], [260.0, -16.0], [260.0, -23.0], [256.0, -38.0], [259.0, -77.0], [251.0, -86.0], [213.0, -99.0], [224.0, -30.0], [205.0, -41.0], [207.0, -61.0], [199.0, -98.0], [196.0, -99.0], [189.0, -108.0], [109.0, -115.0], [82.0, -116.0], [76.0, -114.0], [72.0, -109.0], [54.0, -50.0]]
draw_lines()


cors =[[-77.0, -27.0], [-68.0, -53.0], [-57.0, -92.0], [-45.0, -102.0], [36.0, -109.0], [12.0, -61.0], [32.0, -61.0], [-64.0, -51.0], [-64.0, -68.0], [36.0, -77.0]]
draw_lines()

# 车盖
cors=[[-97.0, 33.0], [8.0, -26.0]]
draw_arc(tuple(cors[0]),tuple(cors[1]),300)

cors=[[197.0, 37.0], [219.0, 7.0]]
draw_arc(tuple(cors[0]),tuple(cors[1]),100)
cors=[ [219.0, 7.0], [220.0, -22.0]]
draw_arc(tuple(cors[0]),tuple(cors[1]),100)

# 右前轮
tom.penup()
tom.goto(-140.0, -78.0)
draw_oval(6,40,3)
tom.goto(-140.0, -78.0)
draw_oval(10,55,3)
tom.goto(-134.0, -78.0)
draw_oval(12,65,3)
# 前轮填充
cors=[[-139.0, -13.0], [-133.0, -9.0], [-126.0, -8.0], [-126.0, -4.0], [-123.0, -5.0], [-110.0, -28.0], [-93.0, -124.0], [-83.0, -134.0], [-89.0, -142.0], [-133.0, -144.0], [-135.0, -139.0], [-131.0, -137.0], [-124.0, -122.0], [-123.0, -112.0], [-123.0, -63.0], [-127.0, -33.0], [-132.0, -21.0], [-137.0, -15.0], [-138.0, -15.0], [-140.0, -12.0],[-139.0, -13.0]]
fillblack()

cors=[[-148.0, -9.0], [-141.0, -11.0], [-140.0, -3.0], [-135.0, 2.0], [-128.0, -0.0], [-124.0, -4.0], [-122.0, -8.0]]
tom.pensize(3)
cors=[[-149.0, -6.0], [-140.0, -15.0], [-142.0, -4.0], [-140.0, -2.0],[-138.0, 0.0],[-131.0, -2.0], [-125.0, -5.0], [-113.0, -26.0]]
draw_lines()
tom.penup()

# 右后轮
tom.goto(-254.0, -25.0)
draw_oval(7,30,3)
draw_oval(11,50,3)
tom.goto(-254.0, -20.0)
draw_oval(12,65,3)
# 后轮填充
cors=[[-202.0, -74.0], [-205.0, -73.0], [-206.0, -75.0], [-209.0, -81.0], [-211.0, -82.0], [-223.0, -82.0], [-252.0, -82.0], [-254.0, -79.0], [-252.0, -78.0], [-246.0, -75.0], [-243.0, -60.0], [-242.0, -45.0], [-242.0, -1.0], [-239.0, -5.0], [-238.0, -9.0], [-232.0, -36.0], [-223.0, -62.0], [-203.0, -73.0]]
fillblack()

# 车把手填充
cors=[[-204.0, -48.0], [-198.0, -40.0], [-197.0, -21.0], [-199.0, -13.0], [-199.0, 5.0], [-200.0, 28.0], [-213.0, 31.0], [-214.0, -5.0], [-206.0, -48.0],[-204.0, -48.0]]
fillblack()

# 前挡填充
cors=[[-31.0, -135.0], [-19.0, -128.0], [-3.0, -124.0], [79.0, -122.0], [163.0, -118.0], [209.0, -113.0], [250.0, -105.0], [252.0, -105.0], [254.0, -115.0], [223.0, -126.0], [89.0, -137.0], [-17.0, -137.0], [-27.0, -136.0]]
fillblack()

tom.goto(-189.0, 86.0)
tom.setheading(60)
draw_oval2(12,4)


tom.pensize(2)
cors=[-206.0, -55.0], [-148.0, -90.0]
drawlines()
tom.ht()

# 右反光镜
cors=[[-191.0, 68.0], [-178.0, 62.0], [-158.0, 67.0], [-148.0, 67.0], [-142.0, 48.0], [-147.0, 44.0], [-156.0, 44.0], [-174.0, 47.0], [-183.0, 49.0], [-182.0, 58.0], [-178.0, 63.0]]
drawlines()
cors=[[-121.0, 39.0], [-142.0, 48.0], [-145.0, 42.0], [-140.0, 37.0], [-148.0, 31.0], [-156.0, 43.0], [-144.0, 45.0]]
drawlines()

# 左反光镜
cors=[[168.0, 59.0], [169.0, 73.0], [173.0, 83.0], [188.0, 83.0], [198.0, 77.0], [199.0, 66.0], [183.0, 58.0], [173.0, 58.0], [172.0, 54.0], [179.0, 50.0], [182.0, 59.0]]
drawlines()
cors=[[-246.0, 26.0], [-232.0, 20.0]]
drawlines()

cors=[[60.0, -55.0], [66.0, -49.0], [193.0, -43.0], [199.0, -48.0], [200.0, -56.0], [190.0, -96.0], [183.0, -101.0], [106.0, -107.0], [88.0, -108.0], [78.0, -102.0], [61.0, -56.0], [61.0, -53.0]]
drawlines()

# 左进风
tom.pensize(6)
cors=[[222.0, -45.0], [247.0, -38.0], [259.0, -39.0], [264.0, -21.0], [259.0, -8.0], [259.0, -48.0], [223.0, -61.0], [219.0, -76.0], [245.0, -67.0], [259.0, -60.0], [259.0, -55.0], [259.0, -73.0], [266.0, -71.0], [249.0, -80.0], [218.0, -88.0], [214.0, -97.0]]
drawlines()

tom.pensize(3)
cors=[[224.0, -30.0], [221.0, -76.0], [217.0, -88.0], [215.0, -99.0]]
drawlines()

#右进风
tom.pensize(7)
cors=[[-76.0, -23.0], [-56.0, -54.0], [28.0, -58.0], [18.0, -40.0]]
drawlines()
tom.pensize(4)
cors=[[-71.0, -65.0], [5.0, -76.0], [37.0, -77.0]]
drawlines()
cors=[[-67.0, -79.0], [-24.0, -87.0], [27.0, -89.0], [46.0, -91.0]]
drawlines()
cors=[[-61.0, -93.0], [-13.0, -98.0], [30.0, -100.0], [53.0, -105.0]]
drawlines()

screen.mainloop()

所有的坐标点是通过自己编制的辅助程序手动选取的,当然不需要自己去一个一个输入。
最终的车是像下面这样的:
python turtle 画实物

本代码有偿提供,需要所有源代码及素材请联系pythonxia微信。

本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » 描点画车动来显示_Python画实物图

李兴球Python微信公众号文章列表

Python游戏海龟模块教程说明书与案例若干免费发放

爱的纪念_Python创意情景动画源代码解析

少儿Python编程到底学些什么?这些代码或许回答了问题.

Python编程家长会花絮_萍乡中小学Python家长会现场

火星路上等着你_少儿从小学什么最好呢?

国家大力整顿教育培训机构,Scratch或Python少儿编程还有得教吗?

鸿蒙系统支持Python开发_可视化编程特别兴趣小组

Scratch作品转Python作品_小猴接桃

python海龟数据可视化。第七次全国人口普查历年数据图表

你的孩子Python编程学到哪个阶段了?给孩子报编程的家长,务必仔细一读。

五一神女来对话,看看她们聊什么?赠Python教案等。

五一快乐有大礼,告诉大家我是如何上Python课的。

Python名堂多,趣味到处有,劈开机械手,帧帧是图片。速算达人之猫狮大战正在进行。 逐字动画不独享,自动生成皆有它。2行代码自动生成字幕gif动画。 Python之潮来临,我在安源区教师科技创新能力的Python讲座

小心你的Python程序,它会是你的一面镜子。小方块闯迷宫.py源代码简析。送Scratch算法集。?

铃儿响钉铛_音效怎能忘_Python配音之Pygame混音器

人面桃花相映红_winsound模块简介

《Python昨晚我想你了》_开源的游戏海龟模块实例案例浅析

《八猫联动初体验》_来自游戏海龟模块的问候

喜爱春天的人儿啊 心地纯洁的人_Python逐行像素显示

旋转之三叶炫彩扇_蟒蛇与海龟的表演

彩虹欢迎字幕_三模合体滚图形

《Python海龟宝典》简介

100%错误的算法还在用,明明没有错别字,说我有11个错别字

奇怪的Python代码,谁能帮我解释一下??

人造地球系统让人类文明充满整个宇宙之Python32768版

深夜,是什么把你的大脑搞成一团浆糊!再谈少儿编程!

5线城市萍乡的少儿Python寒假班学的是什么内容?

关于纯少儿编程课程进化的自然选择

Python海龟画图经典作品_国庆中秋双重喜庆源代码免费下载

海龟为什么要自杀!turtle制作游戏秘籍之一

朋友,你是否知道我在仰望着你_Python神笔马良案例集

酷酷的爆炸效果_Python海龟画图不仅仅是画图

虫子满屏爬_三bug多线程示例程序浅析 少儿Python视频课程A级简介

给的gif图片加文字水印_拆帧与合帧(免费下载180个Python创意源码

用Python制作酷炫图形之如意金箍棒_颜色增加模块应用

简单的用Python做酷炫图形与动画

sb3转exe,sb3素材提取器,编程小子apk, 未公开的pygame游戏集/scratch/python少儿编程免费下载集合

夜幕下的霓虹

学本领,探索更大的世界!

李兴球博客 风火轮编程主页
error: Content is protected !!