python科赫曲线的代码_python – 实现Koch曲线?
我正在查看Koch Snowflake(here)的维基百科页面,并且被徽标/乌龟风格的所有示例所困扰.所以我开始自己制作返回列表或坐标.
我的实现是在python中,我基本上扯掉了python turtle实现,但用基本的trig替换了特定于龟的东西.它导致了一些丑陋的代码.我面临的挑战是要么改进我的代码,要么提出更自己的解决方案.它可以是python或您最喜欢的语言.
我的代码:
from math import sin, cos, radians
def grow(steps, length = 200, startPos = (0,0)):
angle = 0
try:
jump = float(length) / (3 ** steps)
except:
jump = length
set="F"
for i in xrange(steps): set=set.replace("F", "FLFRFLF")
coords = [startPos]
for move in set:
if move is "F":
coords.append(
(coords[-1][0] + jump * cos(angle),
coords[-1][1] + jump * sin(angle)))
if move is "L":
angle += radians(60)
if move is "R":
angle -= radians(120)
return coords
编辑:由于懒惰复制,我忘了导入
解决方法:
我不认为它特别难看,我只会逐渐重构它,例如作为第一步(我已经删除了尝试/除了因为我不知道你要阻止什么…如果它需要重新进入它应该更明确一点,恕我直言):
import math
angles = [math.radians(60*x) for x in range(6)]
sines = [math.sin(x) for x in angles]
cosin = [math.cos(x) for x in angles]
def L(angle, coords, jump):
return (angle + 1) % 6
def R(angle, coords, jump):
return (angle + 4) % 6
def F(angle, coords, jump):
coords.append(
(coords[-1][0] + jump * cosin[angle],
coords[-1][1] + jump * sines[angle]))
return angle
decode = dict(L=L, R=R, F=F)
def grow(steps, length=200, startPos=(0,0)):
pathcodes="F"
for i in xrange(steps):
pathcodes = pathcodes.replace("F", "FLFRFLF")
jump = float(length) / (3 ** steps)
coords = [startPos]
angle = 0
for move in pathcodes:
angle = decode[move](angle, coords, jump)
return coords
如果第二步是有保证的,我可能会把这个功能推到一个班级,但我不确定这会使事情变得更好(或者,事实上更好;-).
标签:python,fractals
来源: https://codeday.me/bug/20190724/1520131.html
python科赫曲线的代码_python – 实现Koch曲线?相关推荐
- python科赫曲线树叶_python画图——雪花(科赫曲线)
科赫曲线是一种分形,其形态非常像雪花,因此又被称作科赫雪花.雪花曲线. 下面是用python的turtle包让我们来实时画一个 import turtle def koch(t,n): #定义一个函数 ...
- python科赫曲线画树叶_Python——科赫曲线绘制
基本概念 科赫曲线:科赫曲线是一种像雪花的几何曲线,所以又称为雪花曲线,它是de Rham曲线的特例.科赫曲线是出现在海里格·冯·科赫的论文<关于一条连续而无切线,可由初等几何构作的曲线> ...
- Python——科赫曲线绘制
基本概念 科赫曲线:科赫曲线是一种像雪花的几何曲线,所以又称为雪花曲线,它是de Rham曲线的特例.科赫曲线是出现在海里格·冯·科赫的论文<关于一条连续而无切线,可由初等几何构作的曲线> ...
- Python 科赫曲线绘制
科赫曲线绘制 #科赫曲线绘制 import turtle import time def koch(size, n):if n == 0:turtle.forward(size)else:for an ...
- python同时注释多行代码_python怎么同时对多行代码进行注释
学会向程序中添加必要的注释,也是很重要的.注释不仅可以用来解释程序某些部分的作用和功能(用自然语言描述代码的功能),在必要时,还可以将代码临时移除,是调试程序的好帮手. 当然,添加注释的最大作用还是提 ...
- python都用什么写代码_python都用什么写代码
各位 Pythoner 好啊!在这个烦躁的时代,相聚就是缘分,很高兴各位 Pythoner 能相聚于此,希望接下来的路,我们一起走下去,使用 Python 来做一些有趣的事情,有意义的事情. 我们在使 ...
- python输出图形效果的代码_python打印图形大全(详解)
原博文 2019-04-13 23:48 − 1)for i in range(0,10): shixin=chr(9679) print(shixin) -------------------结果: ...
- python哆啦a梦完整代码_Python执笔画图,代码一跑,哆啦A梦就出来了!
环境: python 3.6 sublime text 3 turtle模块 核心就是turtle模块,它可以让你使用海龟图形(turtle graphics)绘制图像. 先介绍下关于它的使用方法: ...
- python turtle画彩虹的代码_Python使用turtle绘制国旗,Python图片转换位字符画
这篇文章主要是整合一些趣味代码,一方面自己对这些内容比较感兴趣,另一方面希望这些代码能提升大家的编程兴趣. 一.Python使用turtle绘制国旗 代码如下: 运行结果如下所示,它是动态绘制过程. ...
最新文章
- 现场丨2017中国计算机大会(CNCC2017)之李飞飞演讲:ImageNet之后,计算机视觉何去何从?
- strncmp实现方式之一
- 搜索引擎优化网页设计:最佳实践
- 【CodeForces - 485A】Factory (水题,抽屉原理,tricks)
- tomcat监控脚本
- 如何设置单词第一个字母大写_大写一行中每个单词的第一个和最后一个字母
- js中的trim()方法
- 2021.08.28-MMsegmentation0.16.0+Cuda10.1+Ubuntu16.04+Pytorch1.8环境安装
- 做一个类似登录的循环
- Linux下安装ntp时间同步服务器
- WinForm 的dataGridView全选,反选
- [转] 面向对象编程 - 继承和多态
- cf B. Internet Address
- 关于多数据源(除自己数据库外,另一部分数据需通过接口调取第三方获取)的查询问题...
- python的类方法、静态方法、实例方法_Python 类方法、实例方法、静态方法
- blp模型 上读下写_谁能简单解释一下经济学中的BLP模型?
- kettle打开spoon.bat后无反应
- DirextX9之2D编程 通过16位色位图创建背景透明的纹理
- 解决新版chrome浏览器SameSite属性cookie拦截问题
- java maincase 电影票的售卖与购买 day10-11