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

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

차례:

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

비디오: 3D 게임 16강. 슈팅 게임 만들기[2] (2/4) 2024
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

편집자의 선택

Photoshop Elements 11 - Stone

Photoshop Elements 11 - Stone

을 사용하여 Stone Out을 조각하는 방법 Photoshop Elements 11의 도구를 입력하여 텍스트와 같은 모양의 선택 영역을 만든 다음 이미지 자체를 해당 유형의 채우기로 사용합니다. 예를 들어 꽃 테마 웹 페이지를 만드는 경우 꽃 그림을 텍스트 채우기로 사용할 수 있습니다. 유형 선택을 사용하면 모든 부분을 잘라낼 수 있습니다.

Photoshop Elements 9에서 여러 파일을 일괄 처리하는 방법 - 여러 개의 인형이있는 경우

Photoshop Elements 9에서 여러 파일을 일괄 처리하는 방법 - 여러 개의 인형이있는 경우

여러 파일에 공통적으로 적용 할 편집 기능을 사용하면 Photoshop Elements에서 이러한 변경 사항을 일괄 적으로 처리 할 수 ​​있습니다. 단일 메뉴 명령을 사용하여 파일 형식을 변경하고 파일 속성을 변경하고 공통 파일 기본 이름을 추가 할 수 있습니다. 파일 이름 바꾸기는 내보내기 명령의 일부일 수도 있고 사용할 수도 있습니다.

편집자의 선택

승마 2012 런던 하계 올림픽 - 인형

승마 2012 런던 하계 올림픽 - 인형

승마 (말의 화려한 이름) 경쟁 런던 2012 하계 올림픽은 조련사, 이벤트 및 점프의 세 가지 분야로 구성됩니다. 각 분야는 팀과 개인 메달을위한 기회를 제공합니다. 대회는 7 월 28 일부터 31 일까지 개최됩니다. 조련사 경연 대회는 8 월 2 일부터 9 일까지 개최됩니다. 점프 대회는 ...

동계 올림픽에서의 자유형 스키 - 인형

동계 올림픽에서의 자유형 스키 - 인형

프리 스타일 스키는 동계 올림픽의 X 게임 이벤트 중 하나입니다. . 자유형 스키에서는 경쟁자가 언덕 꼭대기에서 바닥까지 다양한 행사를 수행합니다. 프리 스타일 스키는 기술 스키의 가장 중요한 부분을 차지하며 스노우 보드에서 트릭을 만들어내는 기술과 결합되어 있습니다.

필드 2012 런던 하계 올림픽의 이벤트 - 인형

필드 2012 런던 하계 올림픽의 이벤트 - 인형

스프린트, 릴레이 및 도로 경주 이외에도 2012 런던 하계 올림픽 육상 경기에는 점프 및 던지기 경기가 포함됩니다. 남자와 여자는 높은 점프, 긴 점프, 트리플 점프, 장대 높이뛰기 등의 4 가지 점프 이벤트와 총구, 원반, 창 던지기 및 망치와 같은 네 가지 투구 이벤트에서 경쟁합니다. 필드 이벤트 ...

편집자의 선택

Excel의 유용한 범위 객체 메소드 2016 VBA 프로그래밍 - VBA 메소드가 수행하는

Excel의 유용한 범위 객체 메소드 2016 VBA 프로그래밍 - VBA 메소드가 수행하는

엑셀 2016의 액션. Range 객체는 수십 개의 메소드를 가지고 있지만, 이들 중 대부분은 필요하지 않습니다. 여기서는 가장 일반적으로 사용되는 Range 객체 메소드를 찾습니다. Select 메서드 Select 메서드를 사용하여 셀 범위를 선택합니다. 다음 문은 ...

시나리오 관리자를 사용하여 대출 계산 모델링 방법 - 더미

시나리오 관리자를 사용하여 대출 계산 모델링 방법 - 더미

시나리오 관리자는 목표 탐색 데이터 탭의 가정 분석 섹션에 데이터 테이블이 있습니다. 다른 유용한 도구와 함께 그룹화하면 시나리오 관리자가 중요한 도구임을 믿게 될 것입니다. 그러나 유용한 이름과 좋은 회사가 있음에도 불구하고 ...

더 나은보고 모델을 위해 Power Query와 Power Pivot을 함께 사용 - Power Pivot을 사용하여 더미

더 나은보고 모델을 위해 Power Query와 Power Pivot을 함께 사용 - Power Pivot을 사용하여 더미

Power Query를 함께 사용하면 관리 및 유지 보수가 쉬운보고 모델을 만들 수 있습니다. 보고 모델은보고 메커니즘이 구축되는 기초를 제공합니다. 데이터를 가져오고, 변환하고, 모양을 만들고, 집계하는보고 프로세스를 작성하면 본질적으로보고 모델을 구축하게됩니다. 잘못 작성하는 중 ...