海龟画图

合集下载

Python-Turtle库(海龟绘图)基础知识点

Python-Turtle库(海龟绘图)基础知识点

Python-Turtle库(海龟绘图)基础知识点中国⼤学MOOC《python语⾔程序设计》课程 ——学习⽇记⼀、Turtle库绘图原理: 可以想象成有⼀只海龟,初始位置在窗⼝中⼼,且⽅向朝正右⽅; 海龟⾛过的轨迹形成了绘制的图案: 我们通过编写程序,控制海龟的⾏动轨迹,并且可以设定轨迹的⼤⼩、颜⾊等等。

⼆、Turtle的绘图窗⼝: 函数:turtle.setup(width, height, startx, starty) 表⽰建⽴⼀个绘图窗⼝ width:绘图窗⼝的宽度(像素) height:绘图窗⼝的⾼度(像素) startx:(绘图窗⼝左上⾓的点)距离屏蔽左侧的距离(像素) starty:(绘图窗⼝左上⾓的点)距离屏蔽顶部的距离(像素) Ps:startx和starty可以不填,表⽰绘图窗⼝在电脑屏幕上居中。

函数:turtle.screensize(width, height, "颜⾊") 表⽰建⽴⼀个绘图窗⼝,并定义背景颜⾊三、Turtle空间坐标体系: 函数:turtle.goto(x, y) 表⽰移动到窗⼝上的某⼀点(注:带轨迹) .goto函数是以绘图窗⼝中⼼为坐标原点,把窗⼝划分为4个象限的坐标系。

PS:如果移动过程中不想带轨迹,可配合turtle.penup()和turtle.pendown()这两个函数使⽤。

turtle.penup():提起画笔(海龟起飞),库别名:turtle.up() turtle.pendown():落下画笔(海龟降落),库别名:turtle.pd() 函数:turtle.forword(d) 别名 turtle.fd(d):前进(d:距离) 函数:turtle.backward(d) 别名 turtle.bk(d):后退(d:距离) 函数:turtle.circle(r, angle):画⼀个半径为r,⾓度为angle的圆。

python海龟绘图实例教程

python海龟绘图实例教程

python海龟绘图实例教程本⽂以实例形式介绍了python turtle模块即海龟绘图的使⽤⽅法,对于需要进⾏图形编程的朋友相信会有⼀定的借鉴价值。

python turtle模块简介:python2.6版本中引⼊的⼀个简单的绘图⼯具,叫做海龟绘图(Turtle Graphics)1.使⽤海龟绘图⾸先我们需要导⼊turtle,如下所⽰:from turtle import * #将turtle中的所有⽅法导⼊2.海龟绘图属性:(1)位置(2)⽅向(3)画笔(画笔的属性,颜⾊、画线的宽度)3.操纵海龟绘图有着许多的命令,这些命令可以划分为两种:⼀种为运动命令,⼀种为画笔控制命令(1)运动命令:forward(degree) #向前移动距离degree代表距离backward(degree) #向后移动距离degree代表距离right(degree) #向右移动多少度left(degree) #向左移动多少度goto(x,y) #将画笔移动到坐标为x,y的位置stamp() #复制当前图形speed(speed) #画笔绘制的速度范围[0,10]整数(2)画笔控制命令:down() #移动时绘制图形,缺省时也为绘制up() #移动时不绘制图形pensize(width) #绘制图形时的宽度color(colorstring) #绘制图形时的颜⾊fillcolor(colorstring) #绘制图形的填充颜⾊fill(Ture)fill(false)4.关于turtle简介许多下⾯我们看个实例:(⼀)绘制正⽅形:import turtleimport time#定义绘制时画笔的颜⾊turtle.color("purple")#定义绘制时画笔的线条的宽度turtle.size(5)#定义绘图的速度turtle.speed(10)#以0,0为起点进⾏绘制turtle.goto(0,0)#绘出正⽅形的四条边for i in range(4):turtle.forward(100)turtle.right(90)#画笔移动到点(-150,-120)时不绘图turtle.up()turtle.goto(-150,-120)#再次定义画笔颜⾊turtle.color("red")#在(-150,-120)点上打印"Done"turtle.write("Done")time.sleep(3)(⼆)绘制五⾓星:import turtleimport timeturtle.color("purple")turtle.pensize(5)turtle.goto(0,0)turtle.speed(10)for i in range(6):turtle.forward(100)turtle.right(144)turtle.up()turtle.forward(100)turtle.goto(-150,-120)turtle.color("red")turtle.write("Done")time.sleep(3)这⾥给出了两个简单的实例,⼤家可以根据上⾯的思路与⽅法进⼀步拓展,绘制出⼀些更复杂的图形。

python海龟画图知识点总结

python海龟画图知识点总结

python海龟画图知识点总结一、海龟绘图简介海龟绘图是Python语言中的一个标准库,它提供了一个简单的图形绘制功能。

这个模块的灵感来源于小孩子玩耍时的画画游戏,通过调用不同的函数来控制海龟的行为,我们可以在画布上绘制出各种各样的图案和图形。

海龟绘图是一个很好的初学者入门编程的工具,因为它的操作简单直观,而且很容易理解。

二、海龟模块的基本功能在Python中使用海龟绘图,首先我们需要导入turtle这个模块:```pythonimport turtle```接着我们创建一个海龟对象,我们可以给海龟对象取一个名字,比如叫做“t”:```pythont = turtle.Turtle()```接下来,我们就可以开始控制海龟来绘制图形了。

海龟绘图主要通过控制海龟对象的移动和转向来完成,下面是一些常用的海龟操作方法:- 前进:t.forward(distance),表示海龟向当前方向前进一定距离。

- 后退:t.backward(distance),表示海龟向当前方向后退一定距离。

- 左转:t.left(angle),表示海龟向左转动一定角度。

- 右转:t.right(angle),表示海龟向右转动一定角度。

- 提起笔:t.penup(),表示海龟抬起笔,不在绘制图形。

- 落下笔:t.pendown(),表示海龟落下笔,开始绘制图形。

- 设置颜色:t.color(color),表示设置海龟的颜色。

通过组合这些操作方法,我们就可以控制海龟画出各种各样的图案。

下面我们来看几个简单的例子,来演示一下海龟绘图的具体操作。

```pythonimport turtlet = turtle.Turtle()t.forward(100)t.left(90)t.forward(100)t.left(90)t.forward(100)t.left(90)t.forward(100)t.left(90)```这段代码就是使用海龟绘制了一个正方形。

海龟绘图(TurtleGraphics)

海龟绘图(TurtleGraphics)

海龟绘图(TurtleGraphics)python2.6版本中后引⼊的⼀个简单的绘图⼯具,叫做海龟绘图(Turtle Graphics),turtle库是python的内部库,使⽤导⼊即可import turtle先说明⼀下turtle绘图的基础知识:1. 画布(canvas)画布就是turtle为我们展开⽤于绘图区域, 我们可以设置它的⼤⼩和初始位置1.1 设置画布⼤⼩turtle.screensize(canvwidth=None, canvheight=None, bg=None)参数分别为画布的宽(单位像素), ⾼, 背景颜⾊如:turtle.screensize(800, 600, "green")turtle.screensize() #返回默认⼤⼩(400, 300)turtle.setup(width=0.5, height=0.75, startx=None, starty=None)参数:width, height: 输⼊宽和⾼为整数时, 表⽰像素; 为⼩数时, 表⽰占据电脑屏幕的⽐例(startx, starty): 这⼀坐标表⽰矩形窗⼝左上⾓顶点的位置, 如果为空,则窗⼝位于屏幕中⼼如:turtle.setup(width=0.6, height=0.6)turtle.setup(width=800, height=800, startx=100, starty=100)2. 画笔2.1 画笔的状态在画布上,默认有⼀个坐标原点为画布中⼼的坐标轴, 坐标原点上有⼀只⾯朝x轴正⽅向⼩乌龟. 这⾥我们描述⼩乌龟时使⽤了两个词语:坐标原点(位置),⾯朝x轴正⽅向(⽅向), turtle绘图中, 就是使⽤位置⽅向描述⼩乌龟(画笔)的状态2.2 画笔的属性画笔(画笔的属性,颜⾊、画线的宽度)1) turtle.pensize():设置画笔的宽度;2) turtle.pencolor(); 没有参数传⼊,返回当前画笔颜⾊,传⼊参数设置画笔颜⾊,可以是字符串如"green", "red",也可以是RGB 3元组,>>> pencolor('brown')>>> tup = (0.2, 0.8, 0.55)>>> pencolor(tup)>>> pencolor()'#33cc8c'3) turtle.speed(speed): 设置画笔移动速度,画笔绘制的速度范围[0,10]整数, 数字越⼤越快2.3 绘图命令操纵海龟绘图有着许多的命令,这些命令可以划分为3种:⼀种为运动命令,⼀种为画笔控制命令,还有⼀种是全局控制命令(1)画笔运动命令:命令说明turtle.forward(distance)向当前画笔⽅向移动distance像素长turtle.backward(distance)向当前画笔相反⽅向移动distance像素长度turtle.right(degree)顺时针移动degree°turtle.left(degree)逆时针移动degree°turtle.pendown()移动时绘制图形,缺省时也为绘制turtle.goto(x,y)将画笔移动到坐标为x,y的位置turtle.penup()移动时不绘制图形,提起笔,⽤于另起⼀个地⽅绘制时⽤turtle.speed(speed)画笔绘制的速度范围[0,10]整数命令说明(2)画笔控制命令:命令说明turtle.pensize(width)绘制图形时的宽度turtle.pencolor()画笔颜⾊turtle.fillcolor(colorstring)绘制图形的填充颜⾊turtle.color(color1, color2)同时设置pencolor=color1, fillcolor=color2turtle.filling()返回当前是否在填充状态turtle.begin_fill()准备开始填充图形turtle.end_fill()填充完成;turtle.hideturtle()隐藏箭头显⽰;turtle.showturtle()与hideturtle()函数对应(3) 全局控制命令命令说明turtle.clear()清空turtle窗⼝,但是turtle的位置和状态不会改变turtle.reset()清空窗⼝,重置turtle状态为起始状态turtle.undo()撤销上⼀个turtle动作turtle.isvisible()返回当前turtle是否可见stamp()复制当前图形turtle.write(s[,font=("font-name",font_size,"font_type")])写⽂本,s为⽂本内容,font是字体的参数,⾥⾯分别为字体名称,⼤⼩和类型;font为可选项, font的参数也是可选项3. 命令详解3.1 turtle.circle(radius, extent=None, steps=None)描述: 以给定半径画圆参数:radius(半径); 半径为正(负),表⽰圆⼼在画笔的左边(右边)画圆extent(弧度) (optional);steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)举例:circle(50) # 整圆;circle(50,steps=3) # 三⾓形;circle(120, 180) # 半圆4. 绘图举例4.1 太阳花import turtle as timport timet.color("red", "yellow")t.speed(10)t.begin_fill()for _ in range(50):t.forward(200)t.left(170)end_fill()time.sleep(1)4.2 绘制⼩蟒蛇import turtledef drawSnake(rad, angle, len, neckrad):for _ in range(len):turtle.circle(rad, angle)turtle.circle(-rad, angle)turtle.circle(rad, angle/2)turtle.circle(neckrad, 180)turtle.forward(rad/4)if __name__ == "__main__":turtle.setup(1500, 1400, 0, 0)turtle.pensize(30) # 画笔尺⼨turtle.pencolor("green")turtle.seth(-40) # 前进的⽅向drawSnake(70, 80, 2, 15)4.3 绘制五⾓星import turtleimport timeturtle.pensize(5)turtle.pencolor("yellow")turtle.fillcolor("red")turtle.begin_fill()for _ in range(5):turtle.forward(200)turtle.right(144)turtle.end_fill()time.sleep(2)turtle.penup()turtle.goto(-150,-120)turtle.color("violet")turtle.write("Done", font=('Arial', 40, 'normal'))time.sleep(1)4.4 ⼩猪佩奇感谢的⼩猪佩奇, 很传神:)#!/usr/bin/python# -*- coding: utf-8 -*-"""@time :2018/10/10 10:18@author: yang.bin"""# coding:utf-8import turtle as t# 绘制⼩猪佩奇# ======================================= t.pensize(4)t.hideturtle()t.colormode(255)t.color((255, 155, 192), "pink")t.setup(840, 500)t.speed(10)# ⿐⼦t.penup()t.goto(-100,100)t.pendown()t.seth(-30)t.begin_fill()a = 0.4for i in range(120):if 0 <= i < 30 or 60 <= i < 90:a = a+0.08t.left(3) # 向左转3度t.forward(a) # 向前⾛a的步长else:a = a-0.08t.forward(a)t.end_fill()t.penup()t.seth(90)t.forward(25)t.seth(0)t.forward(10)t.pendown()t.pencolor(255, 155, 192)t.seth(10)t.begin_fill()t.circle(5)t.color(160, 82, 45)t.end_fill()t.penup()t.seth(0)t.forward(20)t.pendown()t.pencolor(255, 155, 192)t.seth(10)t.begin_fill()t.circle(5)t.color(160, 82, 45)t.end_fill()# 头t.color((255, 155, 192), "pink") t.penup()t.seth(90)t.forward(41)t.seth(0)t.forward(0)t.pendown()t.begin_fill()t.seth(180)t.circle(300, -30)t.circle(100, -60)t.circle(80, -100)t.circle(150, -20)t.circle(60, -95)t.seth(161)t.circle(-300, 15)t.penup()t.goto(-100, 100)t.pendown()t.seth(-30)a = 0.4for i in range(60):if 0 <= i < 30 or 60 <= i <90:a = a+0.08t.left(3) # 向左转3度t.forward(a) # 向前⾛a的步长 else:a = a-0.08t.left(3)t.forward(a)t.end_fill()# ⽿朵t.color((255, 155, 192), "pink") t.penup()t.seth(90)t.forward(-7)t.seth(0)t.forward(70)t.circle(-50, 50)t.circle(-10, 120)t.circle(-50, 54)t.end_fill()t.penup()t.seth(90)t.forward(-12)t.seth(0)t.forward(30)t.pendown()t.begin_fill()t.seth(100)t.circle(-50, 50)t.circle(-10, 120)t.circle(-50, 56)t.end_fill()#眼睛t.color((255, 155, 192), "white") t.penup()t.seth(90)t.forward(-20)t.seth(0)t.forward(-95)t.pendown()t.begin_fill()t.circle(15)t.end_fill()t.color("black")t.penup()t.seth(90)t.forward(12)t.seth(0)t.forward(-3)t.pendown()t.begin_fill()t.circle(3)t.end_fill()t.color((255, 155, 192), "white") t.penup()t.seth(90)t.forward(-25)t.seth(0)t.forward(40)t.pendown()t.begin_fill()t.circle(15)t.end_fill()t.color("black")t.penup()t.seth(90)t.forward(12)t.seth(0)t.forward(-3)t.pendown()t.begin_fill()t.circle(3)t.end_fill()# 腮t.color((255, 155, 192))t.seth(0)t.forward(65)t.pendown()t.begin_fill()t.circle(30)t.end_fill()# 嘴t.color(239, 69, 19)t.penup()t.seth(90)t.forward(15)t.seth(0)t.forward(-100)t.pendown()t.seth(-80)t.circle(30, 40)t.circle(40, 80)# ⾝体t.color("red", (255, 99, 71))t.penup()t.seth(90)t.forward(-20)t.seth(0)t.forward(-78)t.pendown()t.begin_fill()t.seth(-130)t.circle(100,10)t.circle(300,30)t.seth(0)t.forward(230)t.seth(90)t.circle(300,30)t.circle(100,3)t.color((255,155,192),(255,100,100)) t.seth(-135)t.circle(-80,63)t.circle(-150,24)t.end_fill()# ⼿t.color((255,155,192))t.penup()t.seth(90)t.forward(-40)t.seth(0)t.forward(-27)t.pendown()t.seth(-160)t.circle(300,15)t.penup()t.seth(90)t.forward(15)t.seth(0)t.forward(0)t.pendown()t.seth(-10)t.circle(-20,90)t.penup()t.seth(90)t.forward(30)t.seth(0)t.circle(-300,15)t.penup()t.seth(90)t.forward(20)t.seth(0)t.forward(0)t.pendown()t.seth(-170)t.circle(20,90)# 脚t.pensize(10)t.color((240,128,128)) t.penup()t.seth(90)t.forward(-75)t.seth(0)t.forward(-180)t.pendown()t.seth(-90)t.forward(40)t.seth(-180)t.color("black")t.pensize(15)t.forward(20)t.pensize(10)t.color((240, 128, 128)) t.penup()t.seth(90)t.forward(40)t.seth(0)t.forward(90)t.pendown()t.seth(-90)t.forward(40)t.seth(-180)t.color("black")t.pensize(15)t.forward(20)# 尾巴t.pensize(4)t.color((255, 155, 192)) t.penup()t.seth(90)t.forward(70)t.seth(0)t.forward(95)t.pendown()t.seth(0)t.circle(70, 20)t.circle(10, 330)t.circle(70, 30)t.done()。

turtle方法

turtle方法

turtle方法§§ 1000# turtle方法## 1、turtle方法简介Turtle 方法,又称“海龟绘图”,是一种基于 Python 的图形编程语言,它是一种工具,用于快速绘制图像,如矩阵图、极坐标图等。

Turtle 方法的优势在于可以轻松地通过计算机编程完成曲线、线段、图形和文本的绘制,因此,它是一种很有用的方法用于数学可视化和图像绘制。

## 2、turtle方法的用法Turtle 方法可通过Python编程来实现,主要的指令有:* `forward()`:向前移动的距离* `backward()`:向后移动的距离* `right()`:向右转动的角度* `left()`:向左转动的角度* `penup()`:抬起画笔,不绘制图形* `pendown()`:落下画笔,绘制图形* `goto()`:移动到指定的坐标* `dot()`:画一个圆点示例:§§ 1020```from turtle import * # 设置线条粗细:width(4)# 前进:forward(200)# 后退:backward(100)# 左转:left(90)# 右转:right(45)# 画点:dot(20)§§ 1040# 抬起画笔:penup()# 落下画笔:pendown()# 移动到:goto(100,100)```## 3、turtle方法的应用Turtle 方法广泛的应用在科学及数学方面,例如绘制曲线、轨迹、格子和三维图形,其他应用还包括:* 绘制动画* 教孩子编程* 装饰文本* 绘制复杂图形* 创建游戏§§ 1060## 4、总结Turtle 方法是一种基于 Python 的图形编程语言,它可以让我们轻松使用计算机编程绘制各种图形,应用广泛,是一种非常有用的绘图方法。

Python编程:第2课《海龟绘图》课件

Python编程:第2课《海龟绘图》课件

turtle画布使用
Y
例如执行代码: turtle.forw1a.trudr(tl1e0画0布) 以像(素3)为t长ur度tle,画距布离中为的1坐称标为系一个单位长度。
2.turtle绘图模块的画布,就像一个平面直角坐标系,画布的每一个点的位置都可以用坐标表示,画布的中 注意心点点:就坐等标于系坐在标画系布的中中并心不点A会((1显000,示0,0)出) 。来X。 画笔往前走100个像素到达A点,并且把经过的这 100个像素改变为黑色,这样就相当于在绘图区 域绘制了一条线段
from 模块名 import *
from turtle import * forward(100)
turtle画布
turtle画布
turtle绘图模块的画布,就像一个平面直角坐标系,画布的每一个点 的位1.置tur都tle可画以布用以坐像(标素3表)为示t长u。r度tle,画距布离中为的1坐称标为系一个单位长度。
t.pensize(5)
t.pensize(5) # 改变画笔粗细t.circle(80)
# 内圆 t.pencolor('blue') t.circle(80)
t.penup() t.goto(0,-40) t.pendown()
t.penup() t.goto(0,-40) t.pendown()
# 抬起画笔 # 外圆 # 将画笔移t动.pe到nc(0ol,o-r4('0re)d') # 放下画笔 t.circle(120)
# t.hideturtle()
# 外圆 t.pencolor('red') t.circle(120)
import turtle turtle.pensize(1)

Python学习笔记0002 - 海龟画图 - 初画图形

Python学习笔记0002 - 海龟画图 - 初画图形

绘制第一个海龟图形功能要求导入海龟模块、创建画笔、移动和旋转画笔等,绘制线段和正方形。

相关要点(1)导入海龟绘图模块(2)创建画笔(3)向前移动(4)画笔旋转实例代码运行结果知识说明海龟绘图(turtle)是Python内置的一个趣味模块。

使用这个模块通过代码创建视觉效果,也可以通过代码影响海龟的移动。

import turtle:将“海龟”导入程序。

Python中import语句的作用是,将Python中自带的或其他编程人员编写好的程序模块导入到自己的程序中使用。

Python一个优势是拥有庞大的模块库。

t=turtle.Pen():让海龟“拿起画笔”。

turtle.Pen()是海龟的画笔(P必须大写),在这里使用t代表海龟的画笔【t被称为“变量”,也可以去其他的名字代替turtle.Pen()】t.forward(100):让海龟移动100步(默认向右移动),其中t代替前面定义的turtle.Pen()。

运行结果的图中,黑色的小三角是小海龟。

三角后面的直线就是小海龟前进的轨迹。

知识说明在使用Python turtle画图时,画完图形窗口一下子消失,退出窗口的几个解决方法:第一种方法:在程序的最后面加上:turtle.exitonclick(),该语句让程序等待用户点击界面后才能够退出第二种方法:在程序的最后面加上:turtle.mainloop(),该语句必须放到最后一句,该句子后面的所有代码都无法执行第三种方法:在程序的最后面加上:turtle.done(),该语句的功能和mainloop(),差不多。

改变海龟的方向功能要求让海龟向右转弯,右转90°。

实例代码运行结果知识说明:right():表示向右转;left():表示向左转,括号里面填写旋转的角度。

right(90)表示向右旋转90°。

海龟画正方形功能要求继续添加代码,将“前进100步”和“向右转90°”重复3遍。

海龟制图知识点归纳总结

海龟制图知识点归纳总结

海龟制图知识点归纳总结海龟制图(Turtle Graphics)是一种基于图形绘制的编程语言,最初由美国计算机科学家西蒙斯·帕帕特雷在1969年设计。

海龟制图是一种直观的图形绘制方式,通过控制一个抽象的海龟在二维平面上移动并绘制图形,使得图形绘制过程更加直观和易于理解。

海龟制图不仅可以用来进行简单的图形绘制,还可以通过编程控制实现复杂的图形和动画效果。

以下是海龟制图的一些重要知识点的归纳总结。

1. 海龟制图基本命令海龟制图的基本命令包括前进(forward)、后退(backward)、转向(turn)、抬起画笔(penup)、放下画笔(pendown)等。

这些基本命令可以通过编程控制海龟在平面上移动并绘制图形。

2. 海龟制图坐标系海龟制图使用的坐标系和普通的平面直角坐标系类似,原点位于平面的中心点,水平方向为x轴,竖直方向为y轴。

不同的是,海龟制图将坐标系细分为四个象限,海龟的初始方向为向右(即x轴正方向),转向的角度为正值表示向左转,负值表示向右转。

3. 海龟制图画笔状态海龟制图的画笔有两种状态:抬起和放下。

抬起画笔时,海龟移动不会绘制图形;放下画笔时,海龟移动会绘制图形。

通过控制画笔状态,可以实现图形的绘制和擦除。

4. 海龟制图的颜色海龟制图可以控制画笔的颜色,包括绘制时的颜色和擦除时的颜色。

通过设置画笔的颜色,可以绘制出具有丰富色彩的图形效果。

5. 海龟制图的循环和条件控制海龟制图支持循环和条件控制语句,通过编程控制海龟的移动和绘制过程。

循环控制可以重复执行相同的语句块,条件控制可以根据条件判断执行不同的语句块,使得海龟制图的编程更加灵活和高效。

6. 海龟制图的函数和过程海龟制图支持函数和过程的定义和调用,通过封装重复使用的代码块,可以使得海龟制图的编程更加模块化和可维护。

7. 海龟制图的动画效果海龟制图可以通过控制海龟的移动和绘制过程,实现丰富多彩的动画效果。

通过使用循环控制和函数调用,可以实现复杂的动画效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、建立海龟画图项目
项目向导会自动为项目生成一个可以运行的demo程序。直接在该程序基础上 进行修改即可。
一、建立海龟画图项目
注意:
打开已有项目时,要打开项目文件(.dev
文件)
二、基本命令

海龟作图(Turtle Graphics)的基本思想是这样的:

屏幕上有一只小海龟,我们可以给它下命令在屏幕上 爬行 海龟爬行的时候,会在屏幕上留下痕迹,从而产生图 形。
3.4 多重循环绘图
利用多重循环,我们可以在圆和多边形的基础
上绘制出更复杂的图案
for (j=1;j<=6;j++) { for(i=1;i<=360;i++) { forward(2); rightTurn(1); } rightTurn(60); }
3.4 多重循环绘图
for (j=1;j<=6;j++) { for(i=1;i<=6;i++) { forward(100); rightTurn(60); } rightTurn(60); }

home();


bk(x); backward(x);


void cs(); void clear();
向后爬行x个像素

lt(degree); leftTurn(degree);


void clearScreen();

海龟向左转degree度 (degree可以为小数)
海龟返回起始点,同时清 除屏幕上的所有痕迹
3.3 圆与多边形

用两个60度的圆弧组成一片叶子:
for (i=1;i<=60;i++){ forward(2); rightTurn(1); } rightTurn(120); for (i=1;i<=60;i++){ forward(2); rightTurn(1); } //让海龟转回起始方向 rightTurn(120);

二、基本命令

程序初始化和控制相关:

initWorld(width,height);

设置绘图窗口大小为width*height

setSpeed(x);

设置海龟的爬行速度,1为最慢,1000为最快
设置是否显示动画。0为显示,1为不显示。缺省为显示动画 程序等待用户按任意键 设置海龟爬到屏幕边缘时是否自动回绕。0为自动回绕,1为不自动回 绕。缺省为自动回绕
2.1.3 复合图形
思考:想绘制如下的图形,该怎么办?
三、循环绘图
使用循环和多重循环,可以绘制出更多
美丽的图案
3.1 美丽花样
forward(100); rightTurn(90); forward(100); rightTurn(90); forward(50); rightTurn(90); forward(50); rightTurn(90); forward(100); rightTurn(90); forward(25); rightTurn(90); forward(25); rightTurn(90); forward(50);
rightTurn(60);
四、函数
在上一章绘制的过程中,我们可以发现,
复杂图形的绘制可以分解为若干个的简单 图形的绘制。
很多简单图形是类似的
如果能够将简单图形的绘制步骤用一条语
句代替,我们的绘制过程将更简洁
在C语言里,我们可以用函数来实现这一点
4.1 自定义函数
void arcl(double side, double degree) { int i; for (i=1;i<=degree;i++) { forward(side); leftTurn(1); } } void arcr(double side, double degree) { int i; for (i=1;i<=degree;i++) { forward(side); rightTurn(1); } } int main() { …. }
C程序设计基础 ——海龟画图
林大 经管学院 瞿华
海龟画图
一. 建立海龟画图项目 二. 基本命令
三. 循环与基本图形
一、建立海龟画图项目
文件->新建->项目…
一、建立海龟画图项目
选择“C语言程序设计”选项卡中的“C语言-海龟作图” 注意填写项目名称
一、建立海龟画图项目
可使用该按钮创建新目录
选择项目文件(.dev文件)的保存位置 最好将每个项目的文件放在单独的目录中
4.2 重复曲线
void polyspi(int side,int angle,int inc) { …… } int main() { …… polyspi(0,95,5); …… }
4.2 重复曲线
void polyspi(int side,int angle,int inc) { …… } int main() { …… polyspi(0,90,5); …… }
3.1 美丽花样
for(i=1;i<=4;i++) { forward(100); rightTurn(90); forward(100); rightTurn(90); forward(50); rightTurn(90); forward(50); rightTurn(90); forward(100); rightTurn(90); forward(25); rightTurn(90); forward(25); rightTurn(90); forward(50); }

setImmediate(x);


pause();


setRewind(x);

二、基本命令

海龟运动相关:



rt(double);
fd(x);
forward(x);


rightTurn(degree);

海龟向右转degree度 海龟返回起始点(屏幕正 中央)
向前爬行x个像素(x可以 为小数)
3.3 圆与正多边形

我们知道,任意凸多边形的内角和等于(边数-2)*180

所以可以这样来画任意的n正多边形(边长为x):

计算每个角的度数angle=(n-2)*180/n 循环n次,每次:

海龟前进x 海龟右转180-angle度 angle=(n-2)*180.0/n; for(i=1;i<=n;i++) { forward(x); rightTurn(180-angle); }
循环4次
3.1 美丽花样
for(;;) { forward(100); rightTurn(90); forward(100); rightTurn(90); forward(50); rightTurn(90); forward(50); rightTurn(90); forward(100); rightTurn(90); forward(25); rightTurn(90); forward(25); rightTurn(90); forward(50);
rightTurn(10); forward(50);
}
错开一点距离和角度,不断重复
3.2 多边形

我们知道,任意多边形都可以由一系列连续下面两条语句的组合来绘出:


forwar(side);
rightTurn(angle);

因此,我们可以准备下面这段程序,只要改变参数变量n,side和angle的 值,就能绘制出多种不同多变形来 for(i=1;i<=n;i++) { forward(side); rightTurn(angle); }
二、基本命令

画笔相关:


void penUp();
void pu();

抬笔,此时海龟爬行不留痕迹


void pd();
void penDown();

落笔,此时海龟爬行留痕迹 设置画笔的颜色

void setPenColor(color_t color);

常用颜色常量: BLACK 黑色 BLUE 蓝色 GREEN 绿色 CYAN 青色 RED 红色 MAGENTA 紫色 BROWN 棕色 LIGHTGRAY 浅灰色 DARKGRAY 深灰色 LIGHTBLUE 浅蓝色 LIGHTGREEN 浅绿色 LIGHTCYAN 浅青色 LIGHTRED 浅红色 LIGHTMAGENTA 浅紫色 YELLOW 黄色 WHITE 白色
3.3 圆与多边形
正五边形,边长为100

正六边形,边长为100
正八边形,边长为100
3.3 圆与多边形

当n越来越大时,我们会发现多边形越来越接近圆形

我们可以用正360边型来模拟圆形,也可以用同样的方 法来绘制圆弧
side=3; for(i=1;i<=360;i++) { forward(side); rightTurn(1); }
我们在主程序前 面定义两个绘制 弧线的函数arcr 和arcl
4.1 自定义函数
有了这两个自定义函数,我们 就可以在主函数中调用它们:
arcr(2,90); arcl(2,90);
4.1 自定义函数
利用这些函数,我们可以绘制出更复杂的图形:
void arcl(double side, double degree) {……} void arcr(double side, double degree) {……} int main() { …… for (i=1;i<=9;i++) { arcr(1,360); rightTurn(40); } …… }
相关文档
最新文档