개인 재정 JavaFX 프로그래밍 예제 : 3D Box - dummy

JavaFX 프로그래밍 예제 : 3D Box - dummy

차례:

비디오: 3D 게임 16강. 슈팅 게임 만들기[2] (2/4) 2025

비디오: 3D 게임 16강. 슈팅 게임 만들기[2] (2/4) 2025
Anonim

JavaFX는 사실적인 3D 모델링을 기본적으로 지원합니다. 실제로 JavaFX 장면 그래프는 본질적으로 3 차원입니다. 대부분의 JavaFX 프로그램은 x 좌표와 y 좌표 만 지정하는 두 가지 차원에서 작동합니다. 그러나 3 차원으로 들어가려면 장면 그래프의 노드를 3 차원 공간에 배치하기 위해 z 좌표를 지정하면됩니다.

JavaFX에는 3D 세계에서 3D 객체를 만들고 시각화하는 풍부한 클래스 세트가 포함되어 있습니다. 큐브 및 실린더와 같은 3 차원 도형을 만들 수 있습니다. 3D 공간 내에서 가상 카메라를 움직여 3D 앵글과 다른 시각에서 3D 오브젝트를 볼 수 있습니다.

그리고 광원을 추가하여 가상 세계의 최종 모습을 조심스럽게 제어 할 수도 있습니다. 즉, JavaFX는 놀라운 3D 장면을 생성 할 수 있습니다.

Java 세계에 3D 상자 추가

이 단계에서는 객체를 3D 세계에 추가합니다.이 경우 상자 클래스는 Box 클래스로 표시됩니다. 코드는 다음과 같습니다.

상자 상자 = 새 상자 (100, 100, 100); 상자. setMaterial (blueStuff); 상자. setTranslateX (150); 상자. setTranslateY (-100); 상자. setTranslateZ (-100); 뿌리. getChildren (). 추가 (상자);

Box 생성자는 상자의 너비, 높이 및 깊이를 나타내는 세 개의 인수를 허용합니다. 이 예제에서는 세 가지 모두 100으로 설정됩니다. 따라서 상자는 각면이 100 단위 인 정육면체로 그려집니다.

상자는 원통과 동일한 재질로되어 있습니다. 그 다음에는 3 축 모두에서 번역되어 상자의 투시도를 볼 수 있습니다. 그림은 렌더링 할 때 상자가 어떻게 나타나는지 보여줍니다. 보시다시피 상자의 왼쪽과 아래쪽면이 보입니다. 왜냐하면 상자의 위치를 ​​오른쪽으로 이동하여 카메라가 일부 원근감을 갖기 때문입니다.

3D 상자 회전

이 단계에서 상자를 회전하면 더 재미있는 투시도가 생성됩니다. 3D 객체를 회전하는 데는 두 가지 방법이 있습니다. 가장 간단한 방법은 객체의 setRotate 메소드를 호출하고 회전 각도:

상자를 제공하는 것입니다. setRotate (25);

기본적으로이 명령은 z 축에서 오브젝트를 회전시킵니다. 시각화가 어렵다면, z 축에 평행 한 긴 스틱으로 물체를 꼬치 꼬치로 잡는 것을 상상해보십시오. 그런 다음 꼬챙이에 물건을 회전시킵니다.

다른 축을 따라 객체를 회전하려면 먼저 setRotationAxis를 호출합니다. 예를 들어, X 축에서 객체를 회전하려면

상자를 사용합니다. setRotationAxis (Rotate. X_AXIS); 상자. setRotate (25);

꼬치를 x 축에 평행 한 꼬챙이로 상자를 통과시킨 다음 상자를 25도 회전시키는 것을 상상해보십시오.

setRotate 메소드를 사용하여 3D 객체를 회전하는 유일한 문제는 한 번에 한 축에서만 작동한다는 것입니다. 예를 들어, z 축과 x 축 모두에서 상자를 25도 회전하려고한다고 가정합니다. 다음 코드는 이 작업을 수행하지 않습니다: 상자. setRotationAxis (Rotate. X_AXIS); 상자. setRotate (25); 상자. setRotationAxis (회전.Z_AXIS); 상자. setRotate (25); setRotate 메소드가 두 번째로 호출되어 z 축의 상자를 회전하면 x 축 회전이 재설정됩니다.

두 개 이상의 축을 회전하려면 회전 클래스를 사용해야합니다. 객체를 회전하려는 각 축에 대해 별도의 Rotate 인스턴스를 만든 다음 getTransforms ()를 통해 모든 Rotate 인스턴스를 객체의 Transforms 컬렉션에 추가합니다. addAll 메소드:

Rotate rxBox = new Rotate (0, 0, 0, 0, Rotate. X_AXIS); 회전 ryBox = new 회전 (0, 0, 0, 0, 회전.Y_AXIS); 회전 rzBox = new 회전 (0, 0, 0, 0, 회전.Z_AXIS); rxBox. setAngle (30); ryBox. setAngle (50); rzBox. setAngle (30); 상자. getTransforms (). addAll (rxBox, ryBox, rzBox);

Rotate 생성자는 네 개의 매개 변수를 허용합니다. 처음 세 개는 회전 축이 통과 할 객체 내의 점의 x, y 및 z 좌표입니다. 일반적으로이 매개 변수에 대해 0을 지정하여 객체를 중심점 주위로 회전시킵니다. 네 번째 매개 변수는 회전 축을 지정합니다.

이 그림은 회전 한 후 상자가 어떻게 나타나는지 보여줍니다.

상자가 회전 된 후.

JavaFX 프로그래밍 예제 : 3D Box - dummy

편집자의 선택

여성 건강 : 케겔 운동 방법 - 인형

여성 건강 : 케겔 운동 방법 - 인형

케겔 운동은 성기의 근육을 타겟으로합니다. 이 근육은 출산 중에 발생하는 스트레칭으로 인해 종종 약해지지만, 임신 한 적이없는 여성을 포함하여 어떤 여성이라도 적절한 케겔 (Kegel)을하는 법을 아는 것이 도움이 될 수 있습니다. 본질적으로 케겔 (Kegel)은 생식기에 좋은 운동을 제공하여 ...

폐경기 동안 기대할 사항 - 인형

폐경기 동안 기대할 사항 - 인형

폐경은 모든 여성의 삶의 사실입니다. 다른 연령대의 여러 단계의 증상으로 진행됩니다. 폐경의 결과로 여성은 알을 낳지 않고 생리를 멈추지 만 여성 호르몬, 에스트로겐 및 호르몬의 생성을 감소시킵니다.

여성 건강 : 요로 감염을 예방하는 방법 - 인형

여성 건강 : 요로 감염을 예방하는 방법 - 인형

요로 감염 (UTI)은 상당히 여성의 공통점. 통증이있는 ​​배뇨 나 잦은 소변과 같은 요로 감염의 증상을 발견하면 치료를받는 것이 중요합니다. UTI 치료는 일반적으로 항생제의 빠른 과정이지만 전문가의 도움을받는 데는 지체가 있으면 치료 시간이 길어질 수 있습니다. ...

편집자의 선택

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

많은 사람들을 위해 일하는 것과 비슷합니다. 많은 기업들이 혜택을 인식하고 있음에도 불구하고 습관을 버리는 것에 저항합니다. 사람들은 깨끗한 데이터가 시스템에 들어갈 수 있도록 시간을 할애하고 싶지 않지만 같은 사람들은 빨리 작업 할 수 있습니다 ...

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce의 모듈은 마케팅 프로그램을 관리, 추적 및 측정하는 데 사용하는 일련의 도구입니다. 캠페인 레코드는 캠페인 레코드입니다. 수동 또는 자동으로 리드, 연락처 및 / 또는 기회 레코드에 링크하여 캠페인에 대한 실제 메트릭을 제공 할 수 있습니다.

편집자의 선택

표시 관련 기사 Joomla 웹 사이트 - 인형

표시 관련 기사 Joomla 웹 사이트 - 인형

Joomla의 또 다른 멋진 모듈은 기사 - 관련 기사. 기사 - 관련 기사는 사이트 방문자가 보려고 선택한 기사와 관련된 기사를 표시하는 모듈입니다. 이 모듈은 현재 기사와 관련된 기사를 어떻게 알 수 있습니까? 그것은 메타 데이터에 입력 할 수있는 메타 데이터 키워드를 사용합니다 ...

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla는 세 가지 프런트 엔드 사용자, 백엔드 사용자 및 그 중간에있는 특수 클래스의 사용자 클래스가 있습니다. 이 클래스에는 3 개의 사용자 그룹이 있습니다. 작성자는 기사를 제출할 수 있습니다. 편집자는 새 기사를 제출하고 기존 기사를 편집 할 수 있습니다. 게시자는 새 기사를 제출하고 기존 기사를 편집하며 기사를 게시 할 수 있습니다. Joomla 사이트 작성자 작성 ...