<< 2/2
乱数を発生させて三角形をつくる
原点を中心に座標位置をランダムにして三角形をつくってみた。
ひとつだけですが、面が裏返ったりするから、
いろいろとアイデアしだいで、じっくり考えてやってみるとできるかな。
できたときはわくわくしますね。
ありがとうございます。
#乱数を発生させて三角形をつくる
import math
import random
global y,z
doc = MQSystem.getDocument()
num = doc.numObject
obj = MQSystem.newObject() #新規オブジェクト
v = []
v.append( obj.addVertex(0,0,0) ) #原点
y=random.randint(1,100) #1から100までの整数を発生
z=random.randint(1,100)
v.append( obj.addVertex(100,y,z) )
y=random.randint(1,100)
z=random.randint(1,100)
v.append( obj.addVertex(100,y,z) )
obj.addFace(v)
doc.addObject( obj )
3つのランダムな頂点を結ぶ三角形
まだまだ修行が足りませんが、imoceaのpython APIに関するドキュメントを参考にした。検討していかなくてはなりません。
勉強です。ありがとうございます。
# rnd_sankaku.py
# ランダムに配置された三角形メッシュを作るサンプル
#
from random import uniform, seed
# 乱数の種設定
seed()
# 三角形の数
tri_count = 1000
doc = MQSystem.getDocument()
num = doc.numObject
obj = MQSystem.newObject() #新規オブジェクト
# 三角形を配置する範囲
range_min = -1000
range_max = 1000
# 三角形中心から頂点までの最短・最長距離
tri_size_min = 10
tri_size_max = 300
# ランダムな三角形中心位置を作成する関数
def random_point():
return uniform(range_min, range_max),uniform(range_min, range_max), uniform(range_min, range_max)
obj.name = "Random Triangles" # 名前設定
a=random_point()
b=random_point()
c=random_point()
v=[]
v.append(obj.addVertex( MQSystem.newPoint(a[0],a[1],a[2])))
v.append(obj.addVertex( MQSystem.newPoint(b[0],b[1],b[2])))
v.append(obj.addVertex( MQSystem.newPoint(c[0],c[1],c[2])))
obj.addFace(v)
MQSystem.println("\tx %f y %f z %f" % (a[0],a[1],a[2]))
doc.addObject( obj )
シェルピンスキーのギャスケット
「
模擬実験録(仮)3DCGの備忘録的な何か」からコピーして実行してみた。
凄いですね。可能性を感じます。メタセコイアでPythonスクリプト作成、いろいろと研究しなければなりません。勉強します。
すばらしいスクリプト、ありがとうございます。
連続した頂点、結合、どうやるか、OpenGL本あたり調べて、勉強ですね。
ずっと勉強したい・・・・。
歯車 (メタセコイアマスターガイド)
ギアをつくってくれるスクリプトですが、重版未定のメタセコイアマスターガイドのサンプルをうちこんでみました。スクリプトを掲載することはできませんが、作成方法についてじっくり勉強していきます。
リスト内包表記や、lambdaが出てきたりして、Pythonインタラクティブモードでいろいろと動作を実験君しながら理解していきたいところです。
ヒントとなるサンプルありがとうございます。
奥が深いですね。勉強します。
<< 2/2