我正在查看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曲线?相关推荐

  1. python科赫曲线树叶_python画图——雪花(科赫曲线)

    科赫曲线是一种分形,其形态非常像雪花,因此又被称作科赫雪花.雪花曲线. 下面是用python的turtle包让我们来实时画一个 import turtle def koch(t,n): #定义一个函数 ...

  2. python科赫曲线画树叶_Python——科赫曲线绘制

    基本概念 科赫曲线:科赫曲线是一种像雪花的几何曲线,所以又称为雪花曲线,它是de Rham曲线的特例.科赫曲线是出现在海里格·冯·科赫的论文<关于一条连续而无切线,可由初等几何构作的曲线> ...

  3. Python——科赫曲线绘制

    基本概念 科赫曲线:科赫曲线是一种像雪花的几何曲线,所以又称为雪花曲线,它是de Rham曲线的特例.科赫曲线是出现在海里格·冯·科赫的论文<关于一条连续而无切线,可由初等几何构作的曲线> ...

  4. Python 科赫曲线绘制

    科赫曲线绘制 #科赫曲线绘制 import turtle import time def koch(size, n):if n == 0:turtle.forward(size)else:for an ...

  5. python同时注释多行代码_python怎么同时对多行代码进行注释

    学会向程序中添加必要的注释,也是很重要的.注释不仅可以用来解释程序某些部分的作用和功能(用自然语言描述代码的功能),在必要时,还可以将代码临时移除,是调试程序的好帮手. 当然,添加注释的最大作用还是提 ...

  6. python都用什么写代码_python都用什么写代码

    各位 Pythoner 好啊!在这个烦躁的时代,相聚就是缘分,很高兴各位 Pythoner 能相聚于此,希望接下来的路,我们一起走下去,使用 Python 来做一些有趣的事情,有意义的事情. 我们在使 ...

  7. python输出图形效果的代码_python打印图形大全(详解)

    原博文 2019-04-13 23:48 − 1)for i in range(0,10): shixin=chr(9679) print(shixin) -------------------结果: ...

  8. python哆啦a梦完整代码_Python执笔画图,代码一跑,哆啦A梦就出来了!

    环境: python 3.6 sublime text 3 turtle模块 核心就是turtle模块,它可以让你使用海龟图形(turtle graphics)绘制图像. 先介绍下关于它的使用方法: ...

  9. python turtle画彩虹的代码_Python使用turtle绘制国旗,Python图片转换位字符画

    这篇文章主要是整合一些趣味代码,一方面自己对这些内容比较感兴趣,另一方面希望这些代码能提升大家的编程兴趣. 一.Python使用turtle绘制国旗 代码如下: 运行结果如下所示,它是动态绘制过程. ...

最新文章

  1. 现场丨2017中国计算机大会(CNCC2017)之李飞飞演讲:ImageNet之后,计算机视觉何去何从?
  2. strncmp实现方式之一
  3. 搜索引擎优化网页设计:最佳实践
  4. 【CodeForces - 485A】Factory (水题,抽屉原理,tricks)
  5. tomcat监控脚本
  6. 如何设置单词第一个字母大写_大写一行中每个单词的第一个和最后一个字母
  7. js中的trim()方法
  8. 2021.08.28-MMsegmentation0.16.0+Cuda10.1+Ubuntu16.04+Pytorch1.8环境安装
  9. 做一个类似登录的循环
  10. Linux下安装ntp时间同步服务器
  11. WinForm 的dataGridView全选,反选
  12. [转] 面向对象编程 - 继承和多态
  13. cf B. Internet Address
  14. 关于多数据源(除自己数据库外,另一部分数据需通过接口调取第三方获取)的查询问题...
  15. python的类方法、静态方法、实例方法_Python 类方法、实例方法、静态方法
  16. blp模型 上读下写_谁能简单解释一下经济学中的BLP模型?
  17. kettle打开spoon.bat后无反应
  18. DirextX9之2D编程 通过16位色位图创建背景透明的纹理
  19. 解决新版chrome浏览器SameSite属性cookie拦截问题
  20. java maincase 电影票的售卖与购买 day10-11

热门文章

  1. 计算机云教室管理制度,云网络智慧教室建设及配套设备方案
  2. 将1~100的数字放到10*10的表格中
  3. 基于python的脑电地形图显示
  4. 顶层设计理论和方法概述
  5. PromptCLUE:大规模多任务Prompt预训练中文开源模型
  6. 海量数据做计算,到底可以有多快?
  7. 大学生计算机大赛acm,浙大三位学生获全球大学生计算机竞赛总冠军
  8. 【无标题】java基础LED安装
  9. su、sudo、sudo su、sudo -i sudo -l的用法和区别
  10. 给app加一个启动图