私がしていること
prism
すべてのプリズムが一緒になってより大きな六角形を作るように、六角形の断面と中央のプリズムを囲む n 層のプリズムをアルゴリズムで描画するシーンがあります。
ここで、プリズムの各列は次の列から sqrt(3)/2 の倍数だけずれています (1 つのプリズムの寸法が <1,sqrt(3)> であるため、sin(120/2°) = sqrt(3) )/2)。
プリズムの寸法に対する結果の位置の浮動小数点値は、オブジェクト間のギャップがゼロになるように常に正確に一致するとは限りません。したがって、全体を で包み込み、merge
透明なガラス状のマテリアルを割り当てると、滑らかで均一な形状になりません。n の値に応じて、マージ オブジェクト内のエッジ、または一部のサーフェスの影、またはその両方で、ぎくしゃくした奇妙さが得られます。
これは、ASCII アートでシーンを説明するコードの先頭にあるコメント ブロックのスニペットです。
__
__/ \__
__/ \ 1/ \__
/ \13/ \ 6/ \
\17/ \ 2/ \10/
/ \14/ \ 7/ \ #3 is at <0,0,0>
\18/ \ 3/ \11/
/ \15/ \ 8/ \
\19/ \ 4/ \12/
\16/ \ 9/
\ 5/
コード全体はここに貼り付けるには長すぎますが、ここで入手できます。私は下手なコーダーであり、POVray には#for
ループがないため、おそらく読むのも非常に苦痛です。
私の質問
- 表面に接触するだけで重ならない数学的に配置されたオブジェクトをマージする際に、float 値の予測不可能性と不正確さをどのように説明すればよいですか?
- これはPOVrayで私が望むように動作するはずですか?
- 私はここで非常に愚かなことをしていますか?