大きな球面の一部分を平面の代わりに使って、立方体を作ってみましょう。以下記事で、サッカーボール(フラーレン)をモデリングした時に使った技術の焼き直しです。
「サッカーボールを作る」
比較的小さい球面は、どう見ても、どこを見ても「曲面」であって、「平面」ではありません。しかし、すごく大きな球面の一部分は、「平面」と見なすことができるくらいに平です(下図)。丸い地球の地面が平らに見えるのと同じです。
上の図では、中心座標(0,0)、一片の長さ2×Cの立方体と、中心座標(cx,0)、半径Rの球面が二次元で表現されています。
R>>Cとなる球面を使って、立方体の6つの平面を張ると、少し丸みを帯びて膨らんだ立方体が完成します。あ、平面ではなく曲面となっている段階で、もはや「立方体」ではないのですが、このページでは便宜上、立方体と呼ぶことにします。
パラメータ(変数)を球面の半径Rとすると、球面を適切な場所に配置するために必要な中心座標cxを求めておく必要があります。
変数R=(√5)÷2×C(≒1.12×C)とした時、完全な球面となります。これより小さいと、一片の長さ2×Cよりも小さな立方体となるため、逆に大きく制御(R>>C)するのが期待値です。R→∞では、普通に平らな平面を使った立方体に漸近して行きます。
なお、完成した立方体のサイズは、面が球面となることで、多少太る事にご注意ください。
完成したデータをリンクしておきます。
1) | Xi-TRACEデータ | cube_sphere.xitr |
1)でレイトレーシングを実行します。
完成した動画を以下にリンクしておきます。
何もない空間に発生した物体が、少しづつ大きくなって、球面を通り抜けた後、立方体になっていく様子のアニメーションです。ちょっと丸っこい立方体が可愛くありませんか?