chura
Jr. メンバー
オフライン
投稿: 25
I'm a llama!
|
|
(解決!)Re:サーフェスに描かれたカーブ上の法線の取得に失敗する
« 返信 #2 投稿日: 2006/09/14 - 15:58:42 » |
|
本件について解決しましたので報告しておきます。
ポイントは、
・サーフェスに描かれたカーブはスプライン曲線である ・スプライン曲線は近似的な曲線なので必ずしもサーフェスと一致していない
ということです。 これを解決するための関数が用意されていました。勉強不足を反省です(^^; この関数は指定点に最も近いサーフェス上の点を取得します。プログラムにするとこんな感じ。
' カーブ上の点を取り出す vArray = swCurve.Evaluate((eParam - sParam) * N / 分割数)
' サーフェス上の情報を取得する vParams = swSurface.EvaluateAtPoint(vArray(0), vArray(1), vArray(2))
' 情報取得に失敗した場合の処理 If (IsEmpty(vParams)) Then ' 指定点に最も近いサーフェス上の点を取得する vClosestPoint = swSurface.GetClosestPointOn(vArray(0), vArray(1), vArray(2))
'取得できた点を使ってもう一度サーフェス上の情報を取得する vParams = swSurface.EvaluateAtPoint(vClosestPoint(0), vClosestPoint(1), vClosestPoint(2)) End If
それでは失礼します。
|