python画八角星_Goc-N角星的绘制
从五角星说起
谈到N角星,习惯性的我们会先想到五角星。你可能觉得应该这样绘制:
代码也会相当的简洁:
六角星和八角星
我们能用同样的方法画六角星吗?NO!五角星可以一笔画出来,笔画不重复,而六角星不行。
好吧,我们可以画两个颠倒的正三角形组成六角星:
代码如下,有些命令使用了连写比如p.fd(300).rt(90);
同样我们用2个正方形可以拼成八角星(代码请大家自己实现)
但是问题来了,七角星怎么办?
化整为零
上面的各种方法都是试图用连贯的线把图画出来,就是从整体上来思考的方式。
大多数事物从整体上看都是很复杂的,难于掌握。我们必须想办法把它拆解成几个小部分,每个小部分相对就简单多了,甚至我们可以发现各个部分之间的关系。
就比如画画,如果我们想一下子画个人很难,但是我们可以分成头、身体、四肢分别去考虑就容易多了。这就是化整为零的思考方式。
寻找重复单元
对于N角星,每个角就是一个单元,如下图所示
注意最后的黄色箭头。每个单元的最终,我们把笔的方向回复到和开始的黑色箭头一样,这样我们才能继续后面的重复。
代码如下:
运行结果如下
变身多角星
如果我们把上面的单元一行代码重复,我们只能得到锯齿
N角星每个角都是不同方向的,所以在绘制每个单元之前,我们需要转一下角度,比如画5次,每次转360/5=72度,就得到了五角星
它的代码是这个样子的
仔细观察这个五角星和我们最初那个五角星有什么不一样呢?
思考题
虽然上面的方法画面上看起来画笔有些摇晃,但有什么要紧呢?最重要的是我们的思路变得一下子清晰了,而且这个算法具有很强的普遍性,比如只要改下数字就有下面这些图形了
你也试试看吧!
这里的N角星都没有把中间的多边形画出来。计算多边形的边长是个棘手的问题,需要用到三角函数,在后面的文章中会提到具体实现方法。
致力于让一切变得通俗易懂
如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,感谢转发~
END
python画八角星_Goc-N角星的绘制相关推荐
- 各种css形状 CSS实现圆角,三角,五角星,五边形,爱心,12角星,8角星,圆,椭圆,圆圈,八卦等等
CSS实现圆角,三角,五角星,五边形,爱心,12角星,8角星,圆,椭圆,圆圈,八卦等等 新出的HTML5新增了不少标签,性能更强,原来的很繁琐的功能几个标签就能实现,同时CSS3也推出,更是一大亮点, ...
- CSS实现圆角,三角,五角星,五边形,爱心,12角星,8角星,圆,椭圆,圆圈,八卦
CSS实现圆角,三角,五角星,五边形,爱心,12角星,8角星,圆,椭圆,圆圈,八卦等等 新出的html5新增了不少标签,性能更强,原来的很繁琐的功能几个标签就能实现,同时CSS3也推出,更是一大亮点, ...
- python画八角星_Python画八角星的程序
满意答案 多边形的画法 def ployon(num, distance): # bob.color('blue', 'red') bob.color("red", "y ...
- Python绘制六角星、多角星、小太阳、小风车《打包好的各种游戏源码,画图源码》
绘制如下图的,多角图形.思路. (1)每个角是一个标准的等边三角形,把绘制等边三角形作为一个标准函数. (2)观察图形,可以看出,画的三角形在不断的旋转和移动,因此第一步找到三角形画法起始点的海龟头旋 ...
- c语言六角星,[转载]六角星的拼法
似乎大家看了由利子的壁饰,和我一样的喜欢这件简单又美丽的作品呢. 这里和大家一起分享关于这样的六角星的拼法吧.做法是我自己画的,如有不对之处,也望大家指出啊. 作品的每个小单元呈一个六角形.也就是说当 ...
- 用python画六芒星_Python绘制六角星、多角星、小太阳、小风车
绘制如下图的,多角图形.思路. (1)每个角是一个标准的等边三角形,把绘制等边三角形作为一个标准函数. (2)观察图形,可以看出,画的三角形在不断的旋转和移动,因此第一步找到三角形画法起始点的海龟头旋 ...
- Python如何用turtle库和循环画一个循环的六角星?
from turtle import * #引入turtle库 for i in range(6):forward(100)right(120)forward(100)left(60) #第一个循环画 ...
- Python turtle 绘制六角星、多角星、小太阳
绘制如下图的,多角图形.思路. (1)每个角是一个标准的等边三角形,把绘制等边三角形作为一个标准函数. (2)观察图形,可以看出,画的三角形在不断的旋转和移动,因此第一步找到三角形画法起始点的海龟头旋 ...
- CSS实现圆角,三角,五角星,五边形,爱心,12角星,8角星,圆,椭圆,圆圈,八卦等等
新出的html5新增了不少标签,性能更强,原来的很繁琐的功能几个标签就能实现,同时CSS3也推出,更是一大亮点,下面是css3的部分用法,在此总结一下,以供需要的朋友们,总共30个例子 1.长方形 # ...
最新文章
- UICollectionView,CollectionView,瀑布流
- Hadoop入门进阶步步高(二)-目录介绍
- Python-Matplotlib可视化(6)——自定义坐标轴让统计图清晰易懂
- 是否可以利用光压提高卫星轨道
- 小米笔记本PRO(双系统)黑果体验
- 各位有什么超实用的生活小窍门呢?
- 如何对CSDN中的博客和博客文章进行修改和管理
- Kryo 缓冲区溢出
- html显示一条直线,如何在HTML中画一条线
- HyperLynx(十)BoardSim和PCB板级仿真分析(一)
- 卫片图斑_整治“卫片图斑”,让违建无处可逃!
- 尺寸有点太大了吧,我已经受不鸟了
- 第3章 天墉城有仙人
- echarts x轴下绘制表格
- python中show函数的用法_jQuery如何使用动画show()方法
- c语言飞机借位,使用c语言实现飞机游戏
- C/C++程序使用lu对象作为配置文件
- 力控-给排水监控系统设计与实现
- 高可用实践之统一鉴权(三)
- 中科大软件工程考研经验贴