python画⼋⾓星_Goc-N⾓星的绘制
从五⾓星说起
serveristoobusy是什么意思中文翻译>diving in谈到N⾓星,习惯性的我们会先想到五⾓星。你可能觉得应该这样绘制:
代码也会相当的简洁:
六⾓星和⼋⾓星
我们能⽤同样的⽅法画六⾓星吗?NO!五⾓星可以⼀笔画出来,笔画不重复,⽽六⾓星不⾏。
好吧,我们可以画两个颠倒的正三⾓形组成六⾓星:
代码如下,有些命令使⽤了连写⽐如p.fd(300).rt(90);
python代码画图案同样我们⽤2个正⽅形可以拼成⼋⾓星(代码请⼤家⾃⼰实现)
异步和同步电机区别是什么但是问题来了,七⾓星怎么办?
unity3d完全自学教程pdf百度云
化整为零
上⾯的各种⽅法都是试图⽤连贯的线把图画出来,就是从整体上来思考的⽅式。
⼤多数事物从整体上看都是很复杂的,难于掌握。我们必须想办法把它拆解成⼏个⼩部分,每个⼩部分相对就简单多了,甚⾄我们可以发现各个部分之间的关系。
就⽐如画画,如果我们想⼀下⼦画个⼈很难,但是我们可以分成头、⾝体、四肢分别去考虑就容易多了。这就是化整为零的思考⽅式。
寻重复单元
对于N⾓星,每个⾓就是⼀个单元,如下图所⽰
注意最后的黄⾊箭头。每个单元的最终,我们把笔的⽅向回复到和开始的⿊⾊箭头⼀样,这样我们才能继续后⾯的重复。
代码如下:
运⾏结果如下
变⾝多⾓星
计算机程序设计语言可以分为三大类
如果我们把上⾯的单元⼀⾏代码重复,我们只能得到锯齿
N⾓星每个⾓都是不同⽅向的,所以在绘制每个单元之前,我们需要转⼀下⾓度,⽐如画5次,每次转360/5=72度,就得到了五⾓星
它的代码是这个样⼦的
仔细观察这个五⾓星和我们最初那个五⾓星有什么不⼀样呢?
思考题
虽然上⾯的⽅法画⾯上看起来画笔有些摇晃,但有什么要紧呢?最重要的是我们的思路变得⼀下⼦清晰了,⽽且这个算法具有很强的普遍性,⽐如只要改下数字就有下⾯这些图形了
你也试试看吧!
这⾥的N⾓星都没有把中间的多边形画出来。计算多边形的边长是个棘⼿的问题,需要⽤到三⾓函数,在后⾯的⽂章中会提到具体实现⽅法。
致⼒于让⼀切变得通俗易懂
如果您发现⽂章错误,请不吝留⾔指正;
如果您觉得有⽤,请点喜欢;
如果您觉得很有⽤,感谢转发~
END

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。