やりたいことがはっきりとは分かりません。
視覚的に表して、どうしたいのですか?
また、見た目で同じサイズにしたいとのことですが、
遠いと小さく見える現象との兼ね合いはどうするのですか。
広い視野をカバーする場合は画面の枚数を増やすか印刷する
かして立体的に配置、といった手法を採らないといけないでしょう。
画面が1枚でそこに表示するだけなら難しくはないと思います。
しかし、それだと大画面でも視野角は90度辺りが限界です。
それで事足りるのでしょうか。
以下、画面1枚に球を描画するVCSSLのサンプルコード(差分のみ。diffで作成)
とその実行結果です。VCSSLはドキュメントがよく整備されているのでいいですね。
7a8,11
> import Math; //random
>
>
> // 元ファイル:VCSSL v3.3r18 標準添付のGraphics3DFrameworkTest.vcssl
18c22
< const bool TEST_2D_RENDERING = true;
---
> const bool TEST_2D_RENDERING = false;
32c36
< testGetWindowSize();
---
> // testGetWindowSize();
36c40
< testGetMagnification();
---
> // testGetMagnification();
55c59
< int axis = newAxisModel(3.0, 3.0, 3.0);
---
> int axis = newAxisModel(0.15, 0.15, 0.15);
59,60c63,64
< int cone = newConeModel(1.4, 1.4, 2.0, 20, 14);
< moveModel(cone, 2.0, 0.0, -1.0);
---
> int cone = newConeModel(0.14, 0.14, 0.2, 20, 14);
> moveModel(cone, 0.2, 0.0, -0.1);
66c70
< sphere = newSphereModel(1.4, 1.4, 1.4, 20, 14);
---
> sphere = newSphereModel(0.025, 0.025, 0.025, 20, 14);
68d71
< moveModel(sphere, 1.0, 0.0, 0.0);
69a73,85
>
> int npcs = 32;
> int sphereids[npcs];
> for( int i=0; i<npcs; i=i+1 ){
> sphereids[i] = newSphereModel(0.02, 0.02, 0.02, 10, 7);
> setModelColor(sphereids[i], 255, 160, 64, 255);
> moveModel(sphereids[i], (random()-0.5)/5, (random()-0.5)/5, (random()-0.5)/5);
> mountModel(sphereids[i], renderer);
> setModelEmissive( sphereids[i], 0.5 );
> }
> setViewLocation( renderer, 0.0, 0.0, 0.5 ); // 視点の初期値は原点の手前0.5にする
> setGraphics3DClip( renderer, 0.01, 30000.0 ); // 視点の至近からかなり遠くまで省略せず描画する
>
79a96,97
> //視点を移動してみる
> rotViewY(renderer, 0.01 );
143c161,167
< setMagnification(1400.0);
---
> setMagnification(0.5 * 100 / 2.54 * 120); //うちのキカイは120dpiだった
> // 1 [inch] = 2.54 [cm]
> // 1m 先の半径 1mの円は
> // d m先のスクリーン上の d mの円と同寸に見える
> // n [pixel] 上記の円のサイズをドット数で
> // x [dpi] スクリーン解像度(画素密度)
> // n / x = d * 100 / 2.54 [inch]
お礼
ご回答ありがとうございました。 VCSSLを知らなかったので、非常に参考になりました。 ご質問いただいた >視覚的に表して、どうしたいのですか? について、 障害物をどれだけ取り除けば、もしくは、障害物をどれだけおいても、視界が確保されるかをビジュアル的に説明したかったのです。 視野というか、視界の方が適切な言葉でしょうか? 質問に適切に回答できていないかもしれませんが、上記の目的です。 また、まずはある単位体積のみのビジュアル的な描画だけでもと思っておりますので、ご回答頂いた内容が参考となりました。