CADコマンドラインの理解-pythonはCAD 2に乱入します_フラクタルの描画の考え方

2378 ワード

コシの雪を描くことで、プログラムでフラクタルを表現する考えがあります.
反復法はL文法を実現する:
研究の主な内容の一つ:フラクタル学とL-systemの関係を適切に理解する.万事万物の自己相似性から抽出した理念を実現し、L-systemは無限にネストすることができ、高度な簡潔性と多段構造を持ち、植物樹木の成長と増殖過程の形態と構造特徴を記述するために、有効な理論と方法を提供し、すでに植物可視化モデリングの主流の方法となっている.L-systemは文字列置換法とも呼ばれ、この方法の理論的根拠は、1つは、単純な図(生成元)反復によって生成できるという基本原理を利用するため、生成元の構成(例えば、構成された線分数、回転角度など)を文字列で表すことができ、文字列を反復することで所望のフラクタル図を生成することができる.二つ目は、生物体が並列方式で生成されるため(並列方式とは、いくつかの部分が同時に成長することである)、並列性は植物シミュレーションとシミュレーション過程の基本原則であるべきである.研究の主な内容の2:L-system形式化言語を合理的に利用して植物の成長をシミュレートする.その自然再帰規則は自己相似性をもたらし,従って得点形の一種類の形式をL−system記述を容易に用いることができる.植物モデルは自然界の有機構造生成と非常に類似して定義されやすいため,再帰層数を増やすことで緩やかに成長し,徐々に複雑になる.L-system構文はChomsky構文とよく似ていますが、L-systemといえばパラメータ付きL-systemを指します.定義はG={V,S,ω,P},V:変数シンボル集合;S:定数シンボルの集合;ω:初期状態列;P:生成式規則初期状態からL-systemの文法規則を反復的に組み込むが、正則文法言語とは異なる点は、L-systemが1回の反復で多くの異なる文法規則を同時に組み込むことができる点である.研究の主な内容の3:補助機能の設計.1つの植物シミュレーションに対して、L文法設計は核心であるが、1つの合格した植物シミュレーションは、ビューファイル設計、アニメーションパラメータ設計、色設計、外形設計、成長関数設計などの機能を補助する必要がある.例えば、成長関数の設計では、1つの植物が無から有、小から大、花芽から花、若葉から枯黄の老葉まで、成長の2つの字と密接に関連しており、植物の成長区間全体に必要な計画が必要である.このすべては成長関数と密接に分けられない.次第にL文法に対する認識を通じて、L-systemに基づく植物シミュレーションの確立の要求に達し、植物の成長全体の状況あるいは局部要素に対する初歩的なシミュレーションを実現する.
  • 初期状態、最も原始的な状態、反復の初め;
  • 動作細胞関数:1つの状態を入力し、新しい状態を返します.これは動作細胞ユニットです.
  • 組合せ細胞関数:組合せ動作細胞関数、すなわち、1つの状態リストを入力し、新しい状態リストを返し、必要に応じて降次元リスト操作を行い、動作細胞関数の入力条件に合致するまで、このステップはまだ議論されている.
  • 反復組合せ細胞関数は、組合せ細胞関数動作を用いて前世代反復結果を操作し、この世代の結果を返す.

    import math
    import numpy as np
    z0 = 0
    z1 = 20j
    def atction(ZS):
    z1 = ZS[0]
    z4 = ZS[1]
    z2 = (z4-z1)/3
    z3 = (z4-z1)2/3
    z5 = z2 + z2
    (math.cos(math.pi/6)+math.sin(math.pi/6)1j)
    z6 = z3 + z2
    (math.cos(-math.pi/6)+math.sin(-math.pi/6)*1j)
    return z1,z2,z3,z4,z5,z6
    def conbinetree(trees):
    trees = list(trees)
    after = []
    for i in trees :
    if trees.index(i) <= len(trees)-2:
    after.extend(atction((i,trees[trees.index(i)+1])))
    return after
    def tree(n):
    if n == 0:
    return conbinetree((z0,z1))
    else :
    return conbinetree(tree(n-1))
    tree = tree(5)
    s = 'point
    '
    for i in tree:
    s += '%s,%s
    '%(i.real,i.imag)
    s += ' '
    f = open(r'C:\Users\Administrator\Desktop\1.txt','w')
    f.write(s)
    f.close()

  • 37326ポイントを返します