导航:首页 > 编程语言 > python画多边形

python画多边形

发布时间:2023-01-26 19:21:50

‘壹’ 求教python中的turtle

海龟库(turtle)

‘贰’ 总结用python绘制正多边形的规律

如果能够找到规律,可以让代码变得更简单。上述代码中其实就是调用circle()函数四次,每次传入参数不同而已。
我们可以加入循环,循环就是重复不停地做相同的事情;再找到循环变量和画圆参数之间的规律即可。

第一个圆的半径为50,每次按15的节奏递减,直到绘制完半径为5的圆。这样就可以使用range()函数,传入如下参数:range(50,0,-15)。
或者由小到大绘制,传入这样的参数也可以:range(5,51,15)。
还可以这样:循环四次,循环变量i依次为0、1、2、3,再在绘制圆的过程中构造递减的表达式:100/2-i*15。

分析这个表达式,当i等于0时,结果为50,绘制半径为50的圆;当i等于1时,结果为35,绘制半径为35的圆……正好符合题目要求的参数值。
【扩展】思考如何绘制以坐标原点为中心的同心圆呢?

仔细观察画笔绘制圆的轨迹,可发现:默认小海龟从坐标原点出发,逆时针旋转一圈画圆;然后,再回到起始点。
所以,绘制同心圆。我们需要将画笔向下移动一定的距离,即改变y的坐标,x坐标保持不变为0。参考代码如下:

循环体内,每次需要抬笔和落笔功能。
02
案例二:绘制一个正多边形

绘制正多边形有这样一个结论:用360°去除以绘制的边数,即可得到旋转角度。
比如:正三角形的旋转角度(360/3=120°)、正四边形的旋转角度(360/4=90°)、正八边形的旋转角度(360/8=45°)。其他以此类推。
那么,我们要绘制一个正八边形呢?

使用循环结构,循环八次。每次前移一定距离,再旋转(360/边数)的角度,这里旋转的就是45°角。参考代码如下:

有了这样的结论,其他的正多边形都可以信手拈来,小菜一碟了。只需要稍微改几个参数即可。
03
案例三:绘制由多种颜色组成的正螺旋线

比如,这样的图形:

这是由八种颜色组成的正八边形螺旋线结构图,颜色依次为:红(red)、绿(green)、蓝(blue)、黄(yellow)、紫(purple)、橙(orange)、黑(black)、粉(pink)等八种。
绘制思路:
首先,需要创建一个颜色列表list,含有八种颜色元素。
第二,前移一定距离,这个距离值是由小到大逐级递增的过程。
第三,旋转一定角度,可参照案例二的结论。
最后,考虑画笔的颜色,每8次(边数)为一个周期循环颜色列表。
参考代码如下:

其他的正螺旋线,也是如此规律。
【扩展】如果是有一定旋转角度的螺旋线呢?比如,这样的图形:

解题思路:只需要在正螺旋线的基础上,让旋转角度多偏移1-2°即可。修改上述案例中最后一行的代码:

‘叁’ 怎么用python画三角形并填色以及画五角星并且填色(急!!!)

可以. 用fill='#XXXXXX'参数:

from Tkinter import Tk, Canvas, Frame, BOTH
from math import sin, pi,cos
def pentagramPoints(cx, cy, R):
xita = 36*pi/180
r = R*cos(2*xita)/cos(xita)
points = []
for i in range(0, 10):
angle = i*xita + 0.5*xita
if i % 2:
points+=[cx + r*cos(angle), cy - r*sin(angle)]
else:
points+=[cx + R*cos(angle), cy - R*sin(angle)]
return points
if __name__ == '__main__':
root = Tk()
f = Frame(root)
f.pack(fill=BOTH, expand=1)
canvas = Canvas(f)
canvas.create_polygon(30, 10, 160, 470, 290, 10, outline="#000000", fill="#00ff00", width=3)
canvas.create_polygon(pentagramPoints(480, 240, 100), outline = '#000000', fill='#ff0000', width=3)
canvas.pack(fill=BOTH, expand=1)
root.geometry("640x480+300+300")
root.mainloop()

‘肆’ 使用python创建arcgis中的带环多边形要素。

将单部分多边形要素的起始点只设置为最右且Y值最大的点
def changeStartPoint(fc):
points = [point for point in fc.getPart(0)]
if len(points)!= 2:
#计算多边形最右边且Y值最大的点在Points中索引
index_RightupperPoint = getRightupperPoint(fc)[1]
#计算更改了起始点的多边形要素的newpoints
newpoints =[]
newpoints.extend(points[index_RightupperPoint:-1])
newpoints.extend(points[:index_RightupperPoint+1])
#创建新要素
newPolygon = arcpy.Polygon(arcpy.Array(newpoints))
return newPolygon
#len(points) ==2为圆、椭圆
else:
return fc

‘伍’ 如何在python语言中输出任意的多边形

fromPILimportImage
fromPILimportImageDraw
a=Image.new('RGB',(200,300))
#画布200x300
m=ImageDraw.Draw(a)
m.polygon([(20,20),(35,140),(180,166)],fill=0xff00ff)
a.show()
#polygon多边形,n个坐标即n边,上-三角形,下-四边形
m.polygon([(20,20),(35,140),(180,166),(180,20)],fill=0xff00ff)

‘陆’ python matplotlib 怎么多边形形

python matplotlib 怎么多边形形
y轴默认会有数值,你是需要自定义吗
可以使用yticks函数,第一个参数是y轴的位置,第二个参数是具体标签

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,6)
y = x * x
plt.plot(x, y, marker='o')
plt.yticks(y, ['a','b','c','d','e','f'])
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,6)
y = x * x

plt.plot(x, y, marker='o')
for xy in zip(x,y):
plt.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20,10), textcoords = 'offset points')

‘柒’ 在python中turtle绘制正七边形

① 以定长R为半径作圆,并过圆心O作互相垂直的纵横两条直径MN、HP. ② 过N点任作一射线NS,用圆规取七等分,把端点T与M连结起来,然后过NT上的各点推出MT的平行线,把MN七等分. ③以 M为圆心,MN为半径画弧,和PH的延长线相交于K点,从K向MN上各分点中的偶数点或奇数点(图中是 1、3、5、7各点)引射线,与交于A、B、C、M.再分别以 AB、BC、CM为边长,在圆周上从A点(或M点)开始各截一次,得到其他三点,把这些点依次连结起来,即得近似的正七边形. 这种画法适用画圆内接任意正多边形.

‘捌’ python turtle作图问题

简介:turtle是一个简单的绘图工具。它提供了一个海龟,你可以把它理解为一个机器人,只听得懂有限的指令。

1.在文件头写上如下行,这能让我们在语句中插入中文
#-*- coding: utf-8 -*-

2.用import turtle导入turtle库

3.绘图窗口的原点(0,0)在正中间。默认情况下,海龟向正右方移动。

4.操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一种为运动命令,一种为画笔控制命令
(1)运动命令:

forward(d)

向前移动距离d代表距离

backward(d)

向后移动距离d代表距离

right(degree)

向右转动多少度

left(degree)

向左转动多少度

goto(x,y)

将画笔移动到坐标为(x,y)的位置

stamp()

绘制当前图形

speed(speed)

画笔绘制的速度范围[0,10]整数

(2)画笔控制命令:

down()

画笔落下,移动时绘制图形

up()

画笔抬起,移动时不绘制图形

setheading(degree)

海龟朝向,degree代表角度

reset()

恢复所有设置

pensize(width)

画笔的宽度

pencolor(colorstring)

画笔的颜色

fillcolor(colorstring)

绘制图形的填充颜色

fill(Ture)

fill(False)

circle(radius, extent)

绘制一个圆形,其中radius为半径,extent为度数,例如若extent为180,则画一个半圆;如要画一个圆形,可不必写第二个参数

5.几个例子
1)画一个边长为60的三角形
#-*- coding: utf-8 -*-
importturtle
a=60
turtle.forward(a)
turtle.left(120)
turtle.forward(a)
turtle.left(120)
turtle.forward(a)
turtle.left(120)

2)画一个边长为60的正方形,并填充为红色,边框为蓝色
#-*- coding: utf-8 -*-
importturtle
turtle.reset()
a= 60
turtle.fillcolor("red")
turtle.pencolor("blue")
turtle.pensize(10)
turtle.fill(True)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.fill(False)

6.练习:
1)画一个五边形
2)画一个六边形
3)任意输入一个正整数m(>=3),画一个多边形(m条边)
4)画一个五角星,如下所示,注意填充为红色
5)画一个中国象棋棋盘,如下图所示,其中汉字不必显示出来:
6)绘制奥运五环图,其中五种颜色分别为蓝色、黑色、红色、黄色和绿色。注意根据实际效果调整圆形的大小和位置。

‘玖’ Python中Turtle模块的基本指令都有哪些

1、画布(canvas)

turtle.screensize(700, 600, "green")

turtle.screensize() #返回默认大小(400, 300)

2、画笔控制命令:

turtle.down() #移动时绘制图形,缺省时也为绘制

turtle.up() #移动时不绘制图形

turtle.pensize(width) #绘制图形时的宽度

turtle.color(colorstring) #绘制图形时的颜色

turtle.fillcolor(colorstring) #绘制图形的填充颜色

turtle.fill(Ture)

turtle.fill(false)

3、运动命令:

turtle.forward(degree) #向前移动距离degree代表距离

turtle.backward(degree) #向后移动距离degree代表距离

turtle.right(degree) #向右移动多少度,角度

turtle.left(degree) #向左移动多少度

turtle.goto(x,y) #将画笔移动到坐标为x,y的位置

turtle.stamp() #复制当前图形

turtle.speed(speed) #画笔绘制的速度范围[0,10]整数

turtle.clear() 清空turtle画的笔迹

turtle.reset() 清空窗口,重置turtle状态为起始状态

turtle.undo() 撤销上一个turtle动作

turtle.isvisible() 返回当前turtle是否可见

turtle.stamp() 复制当前图形

turtle.write('vshmily') 写字符串'vshmily'

(9)python画多边形扩展阅读:

在Python中,自定义模块有两个作用,一个是规范代码,另一个是方便其他程序使用的已经编写好的代码,从而提高开发效率。自定义模块主要分为两部分,一部分是创建模块,另一部分是导入模块。

创建模块可以将模块中相关的代码编写在一个单独的文件中,并且将该文件命名为“模块名+.py”的形式。

创建模块后,就可以在其他程序中使用该模块了,当加载模块时,可以使用import语句实现,语法格式为:import molename [as alias]

阅读全文

与python画多边形相关的资料

热点内容
java输入流字符串 浏览:341
安卓软件没网怎么回事 浏览:785
dvd压缩碟怎么导出电脑 浏览:274
冒险岛什么服务器好玩 浏览:541
如何在服务器上做性能测试 浏览:793
命令序列错 浏览:259
javaif的条件表达式 浏览:576
手机app上传的照片怎么找 浏览:531
云服务器面临哪些威胁 浏览:748
c语言各种编译特点 浏览:177
路由器多种加密方法 浏览:604
程序员阻止电脑自动弹出定位 浏览:168
如何做服务器服务商 浏览:761
su剖切命令 浏览:726
devc编译背景 浏览:211
学习单片机的意义 浏览:51
音频算法AEC 浏览:911
加密货币容易被盗 浏览:82
苹果平板如何开启隐私单个app 浏览:704
空调压缩机一开就停止 浏览:529