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

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

目次:

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

ビデオ: Coding Challenge #14: Fractal Trees - Recursive 2025
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つのステップ - ダミー

エディタの選択

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

Objective-Cでは、作成していないクラスであっても、iOSアプリケーションの既存のクラスに独自のメソッドを追加できます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション...

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーションの開発では、Objective-Cを使用すると、自分が作成していないクラスであっても、既存のクラスに独自のメソッドを追加することができます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション(たとえば、...

In App Purchase機能がiPadアプリで動作する仕組み

In App Purchase機能がiPadアプリで動作する仕組み

Apple App App Purchase機能を提供します。これにより、アプリユーザーはアプリ内から仮想アイテムを直接購入することができます。複数のレベルや環境、または仮想プロパティを持つゲームアプリケーションを開発する場合は、アプリケーションにIn App Purchase機能を追加して、レベル、環境、またはプロパティをさらに販売することを検討してください。 App Purchaseで...

エディタの選択

効果的なホームビジネスWebサイトを作成する方法 - ダミー

効果的なホームビジネスWebサイトを作成する方法 - ダミー

素晴らしいかもしれませんが、製品やサービスをさらに販売するのに役立たない場合は、時間とお金の無駄です。自宅のビジネスにとって本物の資産であるWebサイトを構築するための、実証済みの方法をいくつか試してみましょう。難しいことではありません...

マスターCSSファイルを作成する方法 - ダミー

マスターCSSファイルを作成する方法 - ダミー

多くのデザイナーがマスターHTMLコードのCSSファイルを作成し、個々のサイトのニーズに合わせて、最初からウェブサイトを構築するプロセスをスピードアップします。あなたがより多くのウェブサイトを構築するにつれて、いくつかのスタイルは標準的なデザインプラクティスの標準的な部分になります。 ...

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

Bing検索結果と並んでクリック単価(PPC)広告はMSN adCenterを通じて提供されます。 adCenterを使用して、Webマーケティングのニーズに合わせてアカウントとキャンペーンを作成できます。 Microsoftは、Bing Travel、adCenter Desktopなどのプログラムを追加することで、PPCサービスのインターフェース、ツール、検索品質、およびボリュームを向上させるために歩み続けています。...

エディタの選択

地中海ダイエットレシピ:フルーツサラダ - ダミー

地中海ダイエットレシピ:フルーツサラダ - ダミー

果実は地中海で豊富に生育し、地中海沿岸に沿って、アメリカ人より一般的に果実を多く食べるため、地中海の高レベルの疾病予防に貢献しています。あなたの次の食事やパーティーのために健康的なサイドディッシュのフルーツサラダを作るには、いくつかの方法があります。果物は地中海で豊富に生育し、地中海沿岸に住む人々は一般にアメリカ人よりも多くの果実を食べるため、地中海の高レベルの疾病予防に寄与します。

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

ジャイロとピタサンドイッチは一般的なカジュアルな食品です地中海でピザや他の地中海のサンドイッチと同じように、今日はピタサンドイッチとジャイロのさまざまなバージョンが存在します。ピタスは蒸気で作られた中央のポーチ付きの丸いパンです。