個人財務 3D Javaワールドを構築する3つのステップ - ダミー

3D Javaワールドを構築する3つのステップ - ダミー

目次:

ビデオ: Coding Challenge #14: Fractal Trees - Recursive 2024

ビデオ: Coding Challenge #14: Fractal Trees - Recursive 2024
Anonim

JavaFXで比較的簡単な3Dプログラムを作成して、3次元世界を表示することができます(例を下に示します) 。ご覧のとおり、この3D空間には、球、立方体、円柱、ピラミッドの4つの図形が含まれています。この短いリストは、シリンダーを始める方法を示しています。

この例は時には非常に技術的なものであり、3D世界の構築に関連する概念の多くは混乱を招く可能性があります。特にこれが3Dプログラミングの最初の経験である場合は、考えてください。

<! - 1 - >

JavaFXのサンプル3Dプログラム。

ステップ1:円柱の追加

このステップでは、基本3Dオブジェクトを世界に追加します。 JavaFXには、シリンダ、ボックス、球の3つの基本形状を追加できます。まず、シリンダーを追加します。

シリンダーシリンダー=新しいシリンダー(100,50);ルート。 getChildren()追加(円柱);

Cylinderクラスのコンストラクタは、シリンダの半径と高さの2つの引数を受け取ります。この例では、およそ4倍の高さのホッケーパックの形をしたシリンダーを作成します。シーンのルートノードにシリンダを追加します。

<! - 2 - >

この時点で、シリンダーは世界に存在しますが、見えません。 2Dシェイプについて知っていることに基づいて、塗りつぶしカラー(setFill)またはストロークカラー(setStroke)を追加すると、2Dシェイプを見えるようにすることができます。しかし、それは3Dオブジェクトの仕組みではありません。次のステップでは、シリンダーの表面にマテリアルを適用してシーンに表示されるようにする方法を発見します。

ステップ2:マテリアルを作成する

<! - 3 - >

3Dオブジェクトの面をレンダリングするのは、平面の2次元オブジェクトをレンダリングするよりもはるかに複雑です。 2Dオブジェクトの場合は、setFillメソッドを使用してPaintオブジェクトを適用するだけです。ペイントは、シンプルな色、グラデーションの色、またはイメージにすることができます。

3Dオブジェクトの場合、塗装は適用されません。代わりに、PhongMaterialクラスで表される Phongマテリアル という特別なオブジェクトを適用します。 Phongの素材(1970年代のコンピュータグラフィックスの先駆者Bui Tuong Phongにちなんで命名)は、3Dオブジェクトの顔が現実的にレンダリングされる手段を提供します。

次のコードでは、2つの色合いの青に基づいて簡単なPhongマテリアルを作成し、そのマテリアルをシリンダに適用します:

PhongMaterial blueStuff = new PhongMaterial(); blueStuff。 setDiffuseColor(Color。LIGHTBLUE); blueStuff。 setSpecularColor(Color.Blue);シリンダー。 setMaterial(blueStuff); Phong材料がシリンダに適用された後、図示されているように、シリンダが現場内に見えるようになる。

Phong材質の3Dシリンダー。

ステップ3:シリンダーを変換する

シリンダーが非常に立体的に見えないことは間違いなく気づいたでしょう。それは、あなたがそれを見ているからです。カメラはx軸とy軸の交差点を真っ直ぐに指していて、その円柱はそのまさに中心にあります。

円柱についていくつかの視点を得るために、x、y、z座標を平行移動することによって、3D空間内の別の場所に移動できます。例:

円柱。 setTranslateX(-200);シリンダー。 setTranslateY(200);シリンダー。 setTranslateZ(200);

ここでは、シリンダを左に200単位、下に200単位、カメラから200単位移動します。結果として得られるビューは、ここで見ることができるように、円筒のように見えます。

翻訳された3D円柱。

この図では、シリンダーが前方に回転しているように見え、少し上の表面を見ることができます。しかし、そうではありません。実際に起こったことは、もはやシリンダーの端を見ていないことです。

代わりに、シリンダがカメラの下にあるので、あなたはそれを見下ろしています。したがって、あなたは少しの上面を見ることができます。あなたはまた側からそれを見ています、なぜそれがちょうど少し傾いているように見えるのか説明しています。

3D Javaワールドを構築する3つのステップ - ダミー

エディタの選択

現在の日付のワークブックを作成するExcelマクロ - ダミー

現在の日付のワークブックを作成するExcelマクロ - ダミー

仕事は重要です。これで、Excelマクロを使ってマクロを実行できます。この単純なマクロは、今日の日付が名前の一部である新しいファイルにブックを保存します。マクロの仕組みこのマクロの秘訣は、新しいファイル名をまとめて...

ブックが存在するかどうかを判断するExcelマクロ - ダミー

ブックが存在するかどうかを判断するExcelマクロ - ダミー

このExcelマクロを使用すると、ファイルが存在するかどうかを評価するためのファイルパス。たとえば、PCのどこかでファイルを操作するプロセスがあるとします。たとえば、既存のブックを開いて日単位でデータを追加する必要が生じる場合があります。この場合、あなたは...

財務モデリングのためのExcelへの代替案とサプリメントとなぜExcelを使うべきか

財務モデリングのためのExcelへの代替案とサプリメントとなぜExcelを使うべきか

は、多くの金融モデラーの選択です。 Excelは、Excelで実際に何かを行うことができるため、「ソフトウェアのスイス軍ナイフ」または「次善ソリューション」と呼ばれることがよくありますが、常にそのツールにとって最適なツールではありません。たとえば、Excelで手紙を書くことはできますが、Wordははるかに優れています...

エディタの選択

自然の写真撮影のための焦点距離 - ダミー

自然の写真撮影のための焦点距離 - ダミー

あなたが1枚の写真ですべての写真を撮ることができれば、焦点距離。まあ、実際には、足のズームと呼ばれる小さなものを使うことができます。これは、被写体に近づいたり遠ざかったりするときです。しかし、足をズームしても、あなたはあなたのエフェクトを複製するのが難しくなります。

高ダイナミックレンジデジタル写真用語 - ダミー

高ダイナミックレンジデジタル写真用語 - ダミー

高ダイナミックレンジ(HDR)デジタル写真は、これは時にはかなり混乱する可能性があります。ここでは、かっこを乗り越えるのに役立つ用語の便利なリストです:ブラケット:ブラケットセットで1つの写真。 は、動詞としても使うことができます。

人物を逆光にする方法 - ダミー

人物を逆光にする方法 - ダミー

バックライトはリム照明とも呼ばれ、またはあなたの肖像画の主題のためのハローのような効果。バックライトを使用すると、被写体の形を強調する光の枠を作成できます。被写体を逆光にする方法は次のとおりです。

エディタの選択

DreamweaverのCSSプロパティパネルの背景パネルオプション - DreamweaverのCSSデザイナパネルの背景パネルを使用するダミー

DreamweaverのCSSプロパティパネルの背景パネルオプション - DreamweaverのCSSデザイナパネルの背景パネルを使用するダミー

スタイルの背景色や画像を指定したり、背景がページにどのように表示されるかを制御したりすることができます。 DreamweaverのCSSデザイナパネルの 、 、...

Dreamweaverでリモートサーバー接続を作成する - ダミー

Dreamweaverでリモートサーバー接続を作成する - ダミー

Dreamweaverサイトでは、インターネット上のサイトのリモートロケーションを定義することもあります。

Adob​​e CS5 DreamweaverのcSSレイアウトの変更 - ダミー

Adob​​e CS5 DreamweaverのcSSレイアウトの変更 - ダミー

Abode Creative Suite 5(Adobe CS5)Dreamweaverでは、カスケードスタイルシートのページレイアウトを変更します。 CSSレイアウトはスタイルシートのルールによって完全に制御されるため、CSSスタイルパネルとプロパティインスペクタからページのルックアンドフィールを直接変更できます。