柏虎资源网

专注编程学习,Python、Java、C++ 教程、案例及资源

python turtle 画圆角多边形(python turtle库画三角形)


上个文章我们分享了一些用turtle画基础图形的代码,但是漏掉了圆角矩形,在这里补上,并做一些拓展。

圆角矩形也就是在矩形的四个角里加上圆弧。

矩形很简单,给定长和宽两个参数,然后用个小循环,每次画直线后左转90度,就可以了。

import turtle

t=turtle.Turtle()

def f(x=100,y=200)

for _ in range(2):

t.forward(x)

t.left(90)

t.forward(y)

t.left(90)

f()

turtle.done()

要画圆角矩形,就把左转90度,换成画四分之一圆弧就行。半径就决定了圆弧的大小。这里也设置一个参数r。这样最简单的圆角矩形就画好了。

import turtle

t=turtle.Turtle()

def f(x=100,y=200,r=40)

for _ in range(2):

t.forward(x)

t.circle(r,90)

t.forward(y)

t.circle(r,90)

f()

turtle.done()

半径r越大,圆弧就越大。


当然这样画出来的矩形长宽是比x,y要大了的,可以在画直线时减掉半径r*2。

画其他图形要做圆角的话也类似,在画完直线后转弯时改成画圆弧就行。 比如正多边形。

还记得怎么画正多边形吗?之前我们用内角和来画,但任意多边形的外角和都为360度,所以用外角会更简单,正n边形就是:

import turtle

t=turtle.Turtle()

def f(n=5)

for _ in range(n):

t.forward(a)

t.left(360/n)

f()

turtle.done()


同样的,要改成圆角的话,把转动角度,改成画圆弧就行。这样最简单的圆角正多边形就画好了。

import turtle

t=turtle.Turtle()

def f(n=5,r=40)

for _ in range(n):

t.forward(a)

t. circle (r,360/n)

f()

turtle.done()

我们再扩展一下,画旋转对称的图形,把边长x变成一个元组,外面嵌套一个循环,循环两次,里面循环直接遍历x元组,每次转动角度也要除以2。

这样x元组如果有两个元素,那就是画长方形,还可以增加元组的元素个数看下多个元素画旋转对称图形的效果。

import turtle

t = turtle.Turtle()

def f(x=(50,100),r=20):

n=len(x)

for _ in range(2):

for i in x:

t.forward(i)

t.circle(r,360/n/2)

f()

turtle.done()

如果圆角要往里面凹呢?这样需要在画圆弧前后都转一个角度,然后半径给个负号,顺时针画圆弧。

import turtle

t = turtle.Turtle()

def f(x=(50,100),r=20):

n=len(x)

for _ in range(2):

for i in x:

t.forward(i)

t.left(360/n/2)

t.circle(-r,360/n/2)

t.left(360/n/2)

f()

turtle.done()


当然,在实际编写代码时,循环里面的这个计算,应该拉到循环外面,免得每次循环都要计算哦,这里放循环里面只是为了方便大家理解。

好了,今天的介绍就到这里。自己动手试下吧。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言