2012-12-05 7 views
3

SVG 사양에 따라 임의의 2x3 변형 행렬을 모든 요소에 적용 할 수 있습니다.3D 평면에서 3D 투영을 모방하도록 2D 이미지 변환

http://www.w3.org/TR/SVG/coords.html#TransformAttribute

I는 평면 화상의 3D 프로젝션을 모방하는 SVG의 이미지에 잠재 3D 프로젝션 적용이 방법을 이용하고 싶다.

자바 스크립트에서 행렬 계산을 사용하여 3D 모델 공간 좌표 (x, y, z)에 2D 이미지 공간 좌표 (x ', y')로 변환 및 투영을 적용합니다. 그러나 SVG의 이미지 나 텍스트에 투영법을 적용하려면 3D 변형을 2D 변형 행렬로 투영해야합니다.

이미지가 3D 모델 공간의 임의 평면에 있고 이미지 원점이 평면의 3D 점으로 정의되었다고 가정하면 SVG의 이미지에서 3D 투영 매트릭스를 2D tranformation로 변환하려면 어떻게해야합니까? ?

답변

0

2x3 변환을 사용하여 3D 원근 투영을 수행하는 것이 수학적으로 불가능합니다. 그것은 아핀 변환이 아닌 것입니다. 여기에 대한 정보가 더 있습니다 : http://www.oreillynet.com/xml/blog/2006/09/wherefore_art_thou_svg.html

자바 스크립트를 사용하여 원시 데이터를 변환하고 결과를 SVG 이미지로 표시 할 수 있지만 결과 그래픽을 표시하는 데 SVG 만 사용할 수 있습니다. - 당신은 SVG 이미지로 시작할 수 없습니다.

+0

그러나 이미지 자체가 장면에서 ** 평면에 있기 때문에 이미지 영역의 x/y 도메인에 z 도메인의 기여도를 선형 적으로 투영 할 수는 없습니까? – themadcreator

+0

하실 수 있습니다. 2x3 행렬로는 할 수 없으며 4x4 행렬이 필요하고 SVG는 기본적으로 2x3 행렬 변환 만 수행합니다. –