そのため、疑似コード hereに基づいて、Brightscript への Boid の移植に取り組んでいます。
関連するデータ構造を理解しようとしています。たとえば、Velocity は単一の値ですか、それとも 3D 値ですか? (つまりvelocity={x,y,z}
)
疑似コードがこれを混同しているように見えますが、ベクトルと単一値項目の両方を含む方程式が含まれている場合があります。
v1 = rule1(b)
v2 = rule2(b)
v3 = rule3(b)
b.velocity = b.velocity + v1 + v2 + v3
Velocity が 3 つの値である場合、これは理にかなっていますが、よくわかりません。
それで、私の最初の質問: 上記の疑似コードに基づいて、これは単一のボイドの正しいデータ構造ですか?
boid={position:{px:0,py:0,pz:0},velocity:{x:0,y:0,z:0},vector:{x:0,y:0,z:0},pc:{x:0,y:0,z:0},pv:{x:0,y:0,z:0})
どこでpc
= 知覚された中心、およびpv
= 知覚された速度。
vector_add
、vector_sub
、vector_div
、およびベクトルのブール関数を実装しました。
この疑似コードから始めた理由は、他に読みやすいものを見つけることができなかったからですが、変数ごとにデータ構造が明示的に定義されていないため、まだ多くの疑問が残ります。
(編集)これが私が話していることの良い例です:
IF |b.position - bJ.position| < 100 THEN
両方とも 3D 座標である場合、そうb.position - b[j].position
でない限り、どのように「100 未満」と見なすことができます< {100,100,100}
か?