2009-08-28 7 views
2

저는 도구에서 3D 건물 모델을 읽고 많은 수의 Line(p1, p2) 개체를 생성하는 중입니다. 각 개체는 두 개의 Point(x, y, z) 개체로 구성됩니다. SVG와 같은 종류의 간단한 3D 뷰어에이 것들을 표시하고 싶습니다. (이해할 수 있듯이 2D 만 지원합니다.)3D 벡터/선 미리보기를 신속하게 (스크립트하기 쉽도록) 만드는 방법은 무엇입니까?

읽기는 Python, 특히 IronPython에서 수행됩니다. .NET 뷰어 라이브러리를 사용하거나 적절한 프로그램에서 결과를 수동으로 열어 표시 할 데이터가있는 text/xml/whatnot 파일을 작성할 수 있습니다.

데이터를 보는 데 어떤 형식/도구를 사용 하시겠습니까?

는 (지금이 순간,이 디버깅 목적으로 만, 그래서는 최고 수준. 그냥 와이어 프레임 할 것! 할 필요가 없습니다) 그 나는 mathplot 라이브러리를 확인했다

하지만, 단지 기능을 음모 것 ...

편집 : 나는 결국 X3D 경로를 가서 little blog post on how to do it을 썼습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" 
    "http://www.web3d.org/specifications/x3d-3.0.dtd"> 
<X3D profile="Immersive" > 
    <Scene> 

    <Transform> 
     <Shape> 
     <LineSet vertexCount="5"> 
      <Coordinate point="1 0 0 
           1 1 0 
           0 1 0 
           0 0 0 
           1 0 0" 
           /> 
     </LineSet> 
    </Shape> 
    <Shape> 
     <LineSet vertexCount="5"> 
      <Coordinate point="1 0 1 
           1 1 1 
           0 1 1 
           0 0 1 
           1 0 1" 
           /> 
     </LineSet> 
    </Shape> 
    <Shape> 
     <LineSet vertexCount="5"> 
      <Coordinate point="0 0 1 
           1 0 1 
           1 0 0 
           0 0 0 
           0 0 1" 
           /> 
     </LineSet> 
    </Shape> 
    <Shape> 
     <LineSet vertexCount="5"> 
      <Coordinate point="0 1 1 
           1 1 1 
           1 1 0 
           0 1 0 
           0 1 1" 
           /> 
     </LineSet> 
     </Shape> 
    </Transform> 
    </Scene> 
</X3D> 

답변

1

나는 3D 프로그래밍 전문가가 아니에요하지만 당신이 할 수있는 간단한 트릭이있다 : 여기 1x1x1 큐브에 대한 샘플 X3D 와이어 프레임 파일입니다.
당신은 다음과 같은 3 차원 점 (x, y, z)를 투영 할 수있는 z 축이 화면에 수직 상상 경우 (zoom_factor*(x/z), zoom_factor*(y/z))

+0

감사합니다. 나는 이런 식으로해야 할 것 같습니다. 3D 뷰 포인트를 준비하는 뷰어를 기대했습니다. 또한, 당신의 기술을 사용하여 z 축이 실제로 올라가고 (높이), x/y 평면이 화면에 수직이므로 몇 가지 변형 (쉬운 작업)을해야합니다 ... –

+0

ok Daren. 나는 더 많은 도움과 팁을 줄 수 있기를 바란다 :-) –

1

당신은 POV-Ray를 볼 수 있습니다. 자체 텍스트 기반 장면 기술 언어가있는 레이 트레이서입니다. IIRC, 씬 파일을 생성하는 파이썬 모듈이 있습니다. 그렇지 않다면, 손으로하기가 어렵지 않을 것입니다. 저해상도로 선분을 표시하면 상당히 빠르게 렌더링됩니다. 여기

점검 : http://code.activestate.com/recipes/205451/

또한, 파이썬은 블렌더의 스크립트 언어입니다.

관련 문제