2013-08-27 1 views
3

FMX으로 만든 DelphiXE4 응용 프로그램이 있습니다.TPlane 대 TImage3D?

평평한 질감이있는 물체 (두께 없음)를 사용하면 화면상의 전체 장면을 확대/축소하고 이동할 수 있습니다..
(힌트 : 벽면 사진 생각)

비트 맵이 할당 된 TImage3D 구성 요소를 구현하기 위해 TForm3D를 시작했습니다. 잘 작동한다!
하지만 TPlane 구성 요소를 사용하여 테스트 했으므로 같은 결과를 얻을 수 있으며 동일한 결과를 얻을 수 있습니다.

질문 : 이 2 개 구성 요소 TImage3D & TPlane의 차이점은 무엇입니까?
이것은 내가 현재와 미래의 필요에 맞는 것을 고르는 데 도움이 될 것입니다.
FMX 문서 및 위키가 실제로 도움이되지 않습니다!

답변

4

이러한 것들을 생각하는 가장 좋은 방법은 상속 경로를 찾는 것입니다.

TAbstractLayer에서 파생되므로 일반적으로 3D 레이어처럼 사용할 수 있습니다. TAbstractLayerTControl3D에서 파생되지만 IAlignableObjectIAlignRoot도 구현합니다.

TPlaneTControl3D에서 오는 TShape3D에서 파생 TCustomMesh에서 유래.

나는 짧은에 TPlane 단순히 특정 3D 모양 추측 - 나는 FMX 소스 코드를 주입하지 않은하지만 난 그게 TImage3D보다 더 가볍고해야한다고 생각합니다. TPlane은 3D 공간에서 조작 할 수있는 평평한 표면입니다.

TImage3D가 그러나 의해 IAlignableObject는 등이 내장 된 방법 및이 3 차원 UI 오브젝트로서 상호 작용할 수 있도록 많은 기능에 대한 액세스가있다 A - 마진을 정의하는 다른 IAlignableObjects 자체를 정렬, 경계 및 앵커 등을 정의하여 다른 사람과 관련하여 공간을 채우거나 채우는 방법을 정의합니다. IAlignableObjects.

당신이하고있는 일에 따라 사용할 수있는 것을 선택하십시오. 이미지를 3D 장면의 일부로 만들려면 TPlane이 가장 적합합니다. 3D UI의 일부가되기를 원한다면; 즉, 이미지가 다른 컨트롤, 사용자 인터페이스 요소 등이있는 3D 공간의 일부인 경우 TImage3D이 아마도 가장 적합합니다.

TImage3DTCustomMesh에서 작동하는 특정 방법에 동시에 액세스 할 수 없습니다 - TImage의 아마 그 메쉬를 노출하지 않습니다 (예 : 일반적으로, 3 차원 변환에 의해 수정 될 수없는 등, 어디 입력은 TCustomMesh이어야 함), 잠긴 UI 컨트롤이 아닌 3D 프리미티브 인 TPlane은 그 점에서 다소 유연합니다.

+0

또 다른 차이점은 비트 맵에 관한 것입니다. 'TImage3D'에는 임베드 된 비트 맵이 있고,'TPlane'은 텍스처가있는 (비트 맵인) MaterialSource에 대한 링크입니다. 그러나 나는이 점에 큰 차이가 없다고 생각합니다. – TridenT