3dsMaxで正二十面体のモデリング

https://youtu.be/TbzBq7vMm8M?t=88

こちらの動画を参考にしたが、毎度毎度の確認が手間なので、抜粋。

動画ではP=0.38だが、なんかいびつなので、もう少し精度を上げる。

適当な2つの辺について長さを計算する。

P=0.38だと、19.870623と20.71988で、結構違う。(0.95901)

P=0.37だと、20.183779と20.166405で、まぁ、許容範囲。(1.00086153)

さらに

P=0.3702だと、20.176306と20.177614で、十分な精度。(0.99993517)

3dsMaxでは、Pの表示に小数点以下3桁しか表示してくれないので、0.3702を入力すると、表示上0.370となり、さらに、0の表示が省略されてしまって、0.37と表示される。しかし、内部的には、きちんと0.3702で計算してくれていることに注意。

f:id:hextomino:20210126220606p:plain

//v3705_4の場合、3dsMaxの正二十面体のP値=0.3705を示します
//4は頂点番号4を示します
PVector v370_4 = new PVector(32.644, 10.092, 36.504);
PVector v370_19 = new PVector(42.736, 16.329, 20.175);
PVector v370_3 = new PVector(16.329, 20.175, 42.736);

PVector v3702_4 = new PVector(32.648, 10.089, 36.501);
PVector v3702_19 = new PVector(42.736, 16.324, 20.178);
PVector v3702_3 = new PVector(16.324, 20.178, 42.736);

PVector v380_4 = new PVector(32.839, 9.936, 36.372);
PVector v380_19 = new PVector(42.774, 16.076, 20.296);
PVector v380_3 = new PVector(16.076, 20.296, 42.774);

float d;
d = v370_4.dist(v370_19);println(d);
d = v370_4.dist(v370_3);println(d);println();

d = v3702_4.dist(v3702_19);println(d);
d = v3702_4.dist(v3702_3);println(d);println();

d = v380_4.dist(v380_19);println(d);
d = v380_4.dist(v380_3);println(d);