美文网首页ITS·黑客方法论python趣味100例
【python】实验:分形图初试

【python】实验:分形图初试

作者: MJXH | 来源:发表于2017-05-13 23:49 被阅读115次

写在前面,这个实验非常失败。

实验有关文档:
display | pygame 中文文档
http://bbs.fishc.com/thread-62164-1-1.html
使用Python绘制分形:Koch曲线、Julia集、Mandelbrot集
https://www.chenshaowen.com/blog/the-drawing-2d-fractal-graph-using-python/

初用sublme编译,遇到的小白问题:
问题:can't find '__main__'module in ''
解决:就是复制粘贴的代码没保存,保存一下取个名字就好了

问题:[Decode error - output not utf-8]
解决:http://blog.csdn.net/bbdxf/article/details/25594703

问题:怎样cmd中切换不同版本的python?
现在sublime支持运行3.5.2 PyScripter运行3.4.4
未解决:操作有点复杂,现在用不上

关于分形图实验:
1.首先要安装一些包,根据不同的需求有各种包,实验中用的是: turtle 和 pygame 当然还有很多其他的。
2.分形图其实是一种递归,涉及到根据图形进行数学公式的归纳,这一步暂时还有没能力解决。。。但是这是核心,所以这次的实验是失败的。。
3.下面开始贴代码和运行图


Kochsnowflake.png
import turtle as t    

def koch(level=4, size=200):
    if level == 0:
        t.forward(size)
        return
    else:
        for angle in [60, -120, 60, 0]:
           koch(level-1, size/3)
           t.left(angle)

t.hideturtle()
t.up()
t.setx(-t.window_width()/2)
t.down()
t.speed(0)

koch(4,t.window_width())
t.exitonclick()
FractalTree.png
import turtle as t
 
def dragon(level=4, size=200, zig=t.right, zag=t.left):
    if level <= 0:
        t.forward(size)
        return
 
    size /= 1.41421
    zig(45)
    dragon(level-1, size, t.right, t.left)
    zag(90)
    dragon(level-1, size, t.left, t.right)
    zig(45)
 
t.speed(0)
t.hideturtle()
dragon(8)
t.exitonclick()
DragonCurve.png
import pygame, math
 
pygame.init()
window = pygame.display.set_mode((600, 600))
pygame.display.set_caption("Fractal Tree")
screen = pygame.display.get_surface()
 
def drawTree(x1, y1, angle, depth):
    if depth:
        x2 = x1 + int(math.cos(math.radians(angle)) * depth * 10.0)
        y2 = y1 + int(math.sin(math.radians(angle)) * depth * 10.0)
        pygame.draw.line(screen, (255,255,255), (x1, y1), (x2, y2), 2)
        drawTree(x2, y2, angle - 20, depth - 1)
        drawTree(x2, y2, angle + 20, depth - 1)
 
def input(event):
    if event.type == pygame.QUIT:
        exit(0)
 
drawTree(300, 550, -90, 9)
pygame.display.flip()
while True:
    input(pygame.event.wait())
知乎玫瑰花.png
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
[x, t] = np.meshgrid(np.array(range(25))/24.0,np.arange(0, 575.5, 0.5)/575*17*np.pi-2*np.pi)
p = (np.pi/2)*np.exp(-t/(8*np.pi))
u = 1-(1-np.mod(3.6*t, 2*np.pi)/np.pi)**4/2
y = 2*(x**2-x)**2*np.sin(p)
r = u*(x*np.sin(p)+y*np.cos(p))
surf = ax.plot_surface(r*np.cos(t), r*np.sin(t),u*(x*np.cos(p)-y*np.sin(p)), rstride=1,cstride=1, cmap=cm.gist_rainbow_r,linewidth=0, antialiased=True)
plt.show()

这个实验非常失败。我不仅没能自己也做一幅分形图出来,而且连人家写的图都没看懂,反而觉得这个非常有趣,跑的网上找各种代码来运行。玩物丧志的结果是......最后找到了一个贪吃蛇的代码,玩了一晚上 的贪吃蛇。。。。

相关文章

  • 【python】实验:分形图初试

    写在前面,这个实验非常失败。 实验有关文档:display | pygame 中文文档http://bbs.fis...

  • python箱形图【转载】

    说明:代码运行环境为 Win10+Python3+jupyter notebook 箱形图简介:因为箱形图是基于五...

  • 实验|Pyecharts数据可视化分析—柱状图

    1. 实验介绍 本实验主要介绍柱状图理论与基于Python的柱状图实现。 1.1. 实验目的 掌握柱状图基本使用场...

  • Java程序设计及应用

    蒋和松老师实验课要求:实验分数24分 = 3分/次 * 8次1、 实验报告:1分(要求要有类图、程序流程图);2...

  • 分形图的绘制

    更多算法(语言为JavaScript) 持续更新... 戳我去GitHub看更多算法问题>>>>目录 戳我去Git...

  • 初试python

    弄完java scala ,再来弄python 何时才有入门的体验 Numbers(数字):int(有符号整型)l...

  • 梯形分幅和编号

    国家基本比例尺的梯形分幅与编号 1. 1:100万地形图的分幅编号 1∶100万地形图分幅和编号是采用国际标准分幅...

  • python学习笔记|分形mandelbrot

    Mandelbrot Set(曼德勃罗集)是分形 图形中最有名的图形,关于它的介绍可以参考这个链接 。下面是关于如...

  • Python绘制分形树(一)

    一步一步了解turtle这个库,先绘制个五角星练手 画布 画笔控制命令: 运动命令: 五角星绘制 参考: http...

  • Python绘制分形树(二)

    首先我们来分析一下,绘制分形树大概分以下4个部分: 绘制右侧树枝 返回树枝节点 绘制左侧树枝 返回树枝节点 根据以...

网友评论

    本文标题:【python】实验:分形图初试

    本文链接:https://www.haomeiwen.com/subject/nautxxtx.html