电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

python基于turtle繪制幾何圖形

瀏覽:2日期:2022-06-16 16:04:44
目錄1. 什么是turtle2. turtle例子3. 其他turtle功能4. 更多的例子5. 總結(jié)6. 參考資料1. 什么是turtle

turtle模擬了人在畫布前畫畫的過程:給你一支筆(Pen), 下筆(pendown),移動畫筆繪制你的圖形,然后填色等等。turtle提供了幾種簡單的命令,通過組合他們的順序,只要夠耐心,turtle可以畫出令人驚嘆的作品,很適合用來引導(dǎo)小朋友學(xué)習(xí)編程。

先來感受下作品:

python基于turtle繪制幾何圖形

2. turtle例子

我們通過一個簡單的例子來了解turtle的基本操作

import turtle# screen 畫布屬性設(shè)置canvas = turtle.Screen()canvas.bgcolor('white')# 畫筆設(shè)置pen = turtle.Pen()pen.hideturtle()pen.color(’red’, ’yellow’)# 開始畫第一個部分,并填充顏色pen.begin_fill()while True: pen.forward(200) pen.left(170) if abs(pen.pos()) < 1:breakpen.end_fill()# 提筆, 移動位置,畫第二個部分pen.penup()pen.goto(-100, -100)pen.pendown()for i in range(5): pen.forward(30) #長度300像素 pen.right(144) #轉(zhuǎn)角144度turtle.done()

python基于turtle繪制幾何圖形

從上面可知turtle有兩個部分組成畫筆Turtle 和 畫布Screen, Turtle在Screen上移動來作畫。需要注意的是,turtle起始的位置是(0, 0),位于畫布中心,左邊和下邊的坐標(biāo)為負(fù)值。畫筆Turtle重要操作:

畫筆申明:如果畫筆上有很多畫筆需要 申明 turtle.Pen(),否則 默認(rèn)是一個畫筆,無需申明,如turtle.forward(50)就是表示畫筆向前移動50 畫筆顏色:color(’red’, ’yellow’), 第一個red表示畫筆顏色, yellow表示填充顏色 填充的范圍:begin_fill()和end_fill()之間的部分 畫筆的移動:forward是向前多少距離,left是向左角度, 與之對應(yīng)的是向后backward 和向右right。goto()是移動到某個坐標(biāo)值 畫筆的當(dāng)前屬性:如位置pos()即海龜當(dāng)前的坐標(biāo) (x,y) ,還有如朝向角度值:heading() 畫筆的控制:penup和pendown,默認(rèn)畫筆是在pendown狀態(tài)下,只要有移動就會在畫布上畫出圖形,如果需要調(diào)整位置,在另外一個位置下筆,需要先penup,否則移動畫筆時也會有線條出來。這個和現(xiàn)實(shí)中畫畫是一樣的。 畫筆的可見性:正常情況下畫筆時一個箭頭的形狀,可以通過hideturtle()和showturtle()隱藏和顯示畫筆

Screen重要操作:

設(shè)置背景顏色:bgcolor('white') 3. 其他turtle功能

除了上面例子中涉及到turtle常用功能函數(shù),還有一些重要的功能。

圓形circle() 前面的例子給出的是直線的例子(直線可以構(gòu)成三角形,多邊形等),另外一個重要的圖形是圓形turtle.circle(radius, extent=None, steps=None)

我們來看一個太極的例子:

import turtlefrom turtle import * #從turtle中導(dǎo)出所有模塊radius = 100 #半徑為100color('black', 'black') #畫線顏色黑色,填充顏色黑色begin_fill() #開始填充circle(radius/2, 180) #逆時針畫圈,半徑為50,180°circle(radius, 180) #逆時針畫圈,半徑為100,180°left(180) #轉(zhuǎn)向180°circle(-radius/2, 180) #順時針畫圈,半徑50,180°end_fill() #填充結(jié)束#移動到畫太極圖黑色的小圈位置,開始畫小白圈left(90)#左轉(zhuǎn)向90°,海龜頭垂直水平線向上penup()#提筆,不留痕跡forward(radius*0.35)#向前,半徑的0.35=35像素right(90)#右轉(zhuǎn)向90°,海龜頭與右側(cè)水平線同向pendown()#落筆,開始畫線#開始畫太極圖黑色部分的小白圈color('white', 'white')#畫線顏色為白色,填充顏色為白色begin_fill()#開始填充circle(radius*0.15)#逆時針畫圈,半徑的0.15=15像素(35+15+15+35=100)end_fill() #填充結(jié)束left(90)#左轉(zhuǎn)向90°penup()#提筆,不留痕跡backward(radius*0.7)#后退往下走,為半徑的0.7=70,此時海龜頭朝上與水平垂直pendown()#落筆,開始留下痕跡left(90)#左轉(zhuǎn)90°,此時海龜頭與左側(cè)水平同向#開始畫太極圖白色部分里的小黑圈color('black', 'black')#畫線顏色為黑色,填充為黑色begin_fill()#開始填充circle(radius*0.15)#開始逆時針畫圈,半徑的0.15=15個像素end_fill() #填充完畢right(90)#再右轉(zhuǎn)90°,此時海龜頭垂直水平線向上penup()#提筆,不留痕跡backward(radius*0.65)#后退為半徑的0.65=65個像素,往下到達(dá)太極圖黑色半圈的底點(diǎn)處right(90)#右轉(zhuǎn)90°,海龜頭與右側(cè)水平線同向pendown()#落筆,開始留下痕跡circle(radius, 180)#逆時針畫圈,半徑100,180°,畫太極圖的白色部分的大圈hideturtle()#隱藏筆頭hideturtleturtle.done() radius:半徑, radius 為正值則朝逆時針方向繪制圓弧,否則朝順時針方向 extent:表示是否畫部分的圓,如半圓是180,默認(rèn)是一整個圓 steps:是表示畫圓用多少個多邊形來畫。圓其實(shí)是無窮多個多邊形來近似得到。不過一般情況下,一定程度的多邊形,肉眼就會人為圓的幅度是光滑的

python基于turtle繪制幾何圖形

可以看出太極圖有2個小半圓和2個大半圓,以及2個更小的整圓構(gòu)成。

動畫控制 turtle繪制圖像的過程其實(shí)是動態(tài)的,每繪制一個部分畫面可以理解為一個視頻幀,畫完視頻就結(jié)束。所以turtle除了可以繪制圖形,還可以用來做動畫演示或者交互游戲也是可以。下面以一個例子說明下:

import turtle, time # 初始不更新畫面 turtle.tracer(0) # 地板墻 wall = turtle.Pen() wall.pencolor(’red’) wall.pensize(10) wall.hideturtle() wall.penup() wall.goto(-300, -200) wall.pendown() wall.forward(600) # 小球 R = 15 ball = turtle.Turtle(’circle’) ball.shapesize(R / 10) ball.penup() pos_x, pos_y = [100, 100] pos_x, pos_y = ball.pos() ball.goto(pos_x, pos_y) wall_x, wall_y = wall.pos() # 球參數(shù) FPS = 60 # 每秒60幀 G = 0.03 # 模擬重力加速度 DRAG = 0.9956 # 阻力 v_y = 1 # 初始速度 while True: # 清除印章 ball.clearstamps() v_y += G # 模擬重力加速度 if pos_y - R - 10 < wall_y: # 撞地面 v_y *= -1 pos_x, pos_y = pos_x, pos_y - v_y ball.goto(pos_x, pos_y) v_y = v_y * DRAG # 通過印章顯示球 ball.stamp() # 更新畫面信息 turtle.update() time.sleep(1 / FPS)

python基于turtle繪制幾何圖形

4. 更多的例子

玫瑰曲線

from turtle import *from math import *color('red')def draw(a,end): t=0 while t<(14*end):x=a*sin(t*3.14)*cos(t)y=a*sin(t*3.14)*sin(t)goto(x,y)t=t+0.03draw(100,3.14)done()

python基于turtle繪制幾何圖形

螺旋

import turtlet=turtle.Pen()for x in range(360): t.forward(x) t.left(59)done()

python基于turtle繪制幾何圖形

扇子

from turtle import *forward(200)left(90)fillcolor(’red’)begin_fill()circle(100,180)end_fill()left(90)forward(100)for i in range(17): left(10) pencolor(’yellow’) forward(100) backward(100)left(100)pensize(10)pencolor(’red’)forward(100)hideturtle()done()

python基于turtle繪制幾何圖形

5. 總結(jié)

本文分享了python的logo語言turtle庫,可以繪制圖畫和動畫。總結(jié)如下:

turtle兩個重要元素:畫布Screen和畫筆Turtle 默認(rèn)當(dāng)前為一個畫筆,turtle.Pen()申明多個畫筆 畫筆屬性:顏色color, 大小pensize,位置pos 畫筆填充:begin_fill()和end_fill() 畫筆移動:前后forward和backward, 角度left和right 圓形畫筆:circle 畫筆控制:penup 和pendown 動畫控制:update和trace追蹤 6. 參考資料

https://docs.python.org/zh-cn/3/library/turtle.html#

以上就是python基于turtle繪制幾何圖形的詳細(xì)內(nèi)容,更多關(guān)于python turtle繪制幾何圖形的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 电动球阀_不锈钢电动球阀_电动三通球阀_电动调节球阀_上海湖泉阀门有限公司 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | J.S.Bach 圣巴赫_高端背景音乐系统_官网 | 超声波反应釜【百科】-以马内利仪器 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 美的商用净水器_美的直饮机_一级代理经销商_Midea租赁价格-厂家反渗透滤芯-直饮水批发品牌售后 | 诚暄电子公司首页-线路板打样,pcb线路板打样加工制作厂家 | 微型气象仪_气象传感器_防爆气象传感器-天合传感器大全 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 兰州牛肉面加盟,兰州牛肉拉面加盟-京穆兰牛肉面 | 浙江富广阀门有限公司| 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 共享雨伞_共享童车_共享轮椅_共享陪护床-共享产品的领先者_有伞科技 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 蚂蚁分类信息系统 - PHP同城分类信息系统 - MayiCMS | 船用烟火信号弹-CCS防汛救生圈-船用救生抛绳器(海威救生设备) | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | 塑钢件_塑钢门窗配件_塑钢配件厂家-文安县启泰金属制品有限公司 深圳南财多媒体有限公司介绍 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 防爆电机_ybx3系列电机_河南省南洋防爆电机有限公司 | 壹车网 | 第一时间提供新车_资讯_报价_图片_排行! | 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 热镀锌槽钢|角钢|工字钢|圆钢|H型钢|扁钢|花纹板-天津千百顺钢铁贸易有限公司 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 广州企亚 - 数码直喷、白墨印花、源头厂家、透气无手感方案服务商! | 抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司 | 方源木业官网-四川木门-全国木门专业品牌 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 衬塑设备,衬四氟设备,衬氟设备-淄博鲲鹏防腐设备有限公司 | CCC验厂-家用电器|服务器CCC认证咨询-奥测世纪 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | 缝纫客 |