3

シェイプ NURBSTo エントリ (スプラインに使用 - カーブしたエッジ) の NURBS 式の個々のパラメータを解読するのに問題があります。MS Visio のドキュメントはあまり役に立ちませんでした。

パラメータの数は、曲線の複雑さに応じて変化します。より簡単な例は次のとおりです。

NURBS(0.4492,3,0,1,0,-0.1875,0,1,1,-0.1875,0,1)

ここで、start と end の座標パラメーター start は X が 5 番目、Y が 6 番目であることがわかりました。end は X が 9 番目、Y が 10 番目です。しかし、Y 座標はまだ間違っているので、別のパラメーターと組み合わせる必要があると思います。この Java コードは、スプラインの制御点を取得する上で、これまでのところ最高の結果を提供しています。

    int j = 0;

for (int i = 2; i + 4 < pointsS.length; i = i + 4)
{
    mxPoint currPoint = new mxPoint();
    currPoint.setX(startXY.getX() + (endXY.getX() - startXY.getX()) * pointsRaw[i + 2]);
    currPoint.setY(startXY.getY() - (endXY.getY() - startXY.getY()) * pointsRaw[i + 3]);
    pointList.add(currPoint);
    j++;
}

より複雑なスプラインの例:

NURBS(2.9857,3,1,1,0.1875,0,0,1,0.1875,-0.8954,0,1,0.1875,-1.3431,0,1,0.1875,-1.7908,0.4521,1,-0.4936,-1.7908,1.049,1,-1.1747,-1.7908,1.424,1,-1.1747,-2.1799,1.902,1,-1.1747,-2.5689,2.3742,1)

ドキュメントには、パラメーター 2 のみが「度」と記載されています。近似に使用されるのは多項式の次数だと思います。

NURBS に関する wiki ページ: http://en.wikipedia.org/wiki/Non-uniform_rational_B-spline

もちろん、Visio パラメータについては触れていません :)

4

2 に答える 2

2

3 番目と 4 番目のパラメーターが x パラメーターと y パラメーターの解釈方法に与える影響を考慮していますか?

MSDN から ( http://msdn.microsoft.com/en-us/library/office/aa224197(v=office.11 ​​).aspx ):

NURBS(knotLast、度、xType、yType、x1、y1、knot1、weight1、...)

knotLast 最後のノット。

degree スプラインの次数。

xType x 入力データの解釈方法を指定します。xType が 0 の場合、すべての x 入力データは幅のパーセンテージとして解釈されます。xType が 1 の場合、すべての x 入力データはローカル座標として解釈されます。

yType y 入力データの解釈方法を指定します。yType が 0 の場合、すべての y 入力データは高さのパーセンテージとして解釈されます。yType が 1 の場合、すべての y 入力データはローカル座標として解釈されます。

x1 x 座標。

y1 y 座標。

ノット1 B スプライン上のノット。

weight1 B スプラインの重み。

于 2013-07-17T01:43:30.620 に答える
0

これは役立つかもしれません: Visio 2003 Developer's Survival Pack by Graham Wideman

http://www.amazon.com/Visio-2003-Developers-Survival-Pack/dp/1412011124

Visio NURBS に関する広範なセクションがあります。Kindle版はわずか7ドルです。

于 2013-07-24T10:46:02.010 に答える