C ++プログラムでMAXからエクスポートされた3Dスプラインの評価

StackOverflow https://stackoverflow.com/questions/8307015

  •  25-10-2019
  •  | 
  •  

質問

私のC ++プログラムでは、3DS Max(2011)で構築された3Dスプラインへのアクセスが必要です。 単純なmaxscriptを見つけました これは、これらのスプラインをXMLファイルとしてエクスポートします - 次の例として:

<spline name='Line001' knots='5' closed='true'>
<knot x='-4.67297e-005' y='0.0' z='0.0'>
    <invec x='-0.000144482' y='-600.0' z='-1.52588e-005' />
    <outvec x='5.10227e-005' y='600.0' z='1.52588e-005' />
</knot>
<knot x='6.17511e-005' y='800.0' z='500.0'>
    <invec x='7.92357e-005' y='800.0' z='100.0' />
    <outvec x='4.42666e-005' y='800.0' z='900.0' />
</knot>
<knot x='-66.0574' y='1000.0' z='900.0'>
    <invec x='-66.0574' y='700.0' z='900.0' />
    <outvec x='-66.0573' y='1300.0' z='900.0' />
</knot>
<knot x='323.651' y='1300.0' z='4.57764e-005'>
    <invec x='323.651' y='1600.0' z='200.0' />
    <outvec x='323.651' y='1000.0' z='-200.0' />
</knot>
<knot x='-0.000152032' y='-700.0' z='-200.0'>
    <invec x='-0.00014329' y='-700.0' z='-400.0' />
    <outvec x='-0.000160774' y='-700.0' z='-1.52588e-005' />
</knot>
</spline>

私の質問はです - 私のC ++プログラムでこのスプラインにアクセスして評価するための最も単純な(そして最も軽量な)アプローチは何でしょうか?私はデータのXMLを解析する方法を知っていますが、それ以降、私は現在失われています。できる必要があります a) この3Dスプラインに沿ってポイントを評価します b) この時点で接線を記述するベクトルを計算します(可能であれば)。この種のものに利用できるライブラリがあることは理解していますが、どちらが最も適切であるかはわかりません - 特に 上記の形式に関して (結び目、それぞれがInvecとoutvecを備えています)。

役に立ちましたか?

解決

3DS Maxはすでにこれらの曲線を計算しているため、必要な解像度で「焼き」曲線をXMLにエクスポートすることができます。

アプリケーションの曲線を評価したい場合は、Bézier曲線(これらが推測していると思います)は、外部ライブラリの助けを借りずに簡単に計算できます。を見てください De Casteljauのアルゴリズム ウィキペディア、特に幾何学的解釈を説明するセクションでは、式よりも把握しやすいセクションです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top