首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visio NURBS公式

Visio NURBS公式
EN

Stack Overflow用户
提问于 2013-07-16 17:02:34
回答 2查看 870关注 0票数 3

我在解密shapes NURBSTo条目(用于样条线曲线边)中的NURBS公式的各个参数时遇到问题。MS Visio文档没有太多帮助。

参数的数量随曲线的复杂程度而变化。一个更简单的例子是:

代码语言:javascript
复制
NURBS(0.4492,3,0,1,0,-0.1875,0,1,1,-0.1875,0,1)

我发现开始和结束坐标参数start是X的第5个,Y的第6个。end是X的第9个,Y的第10个。但是Y坐标仍然是错误的,所以我认为它们应该与另一个参数组合。这段Java代码在获得样条线的控制点方面提供了迄今为止最好的结果:

代码语言:javascript
复制
    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++;
}

这只是一个更复杂的样条线的示例:

代码语言:javascript
复制
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的维基页面:http://en.wikipedia.org/wiki/Non-uniform_rational_B-spline

当然,它并不涉及Visio参数:)

EN

回答 2

Stack Overflow用户

发布于 2013-07-17 09:43:31

您是否考虑到第三个和第四个参数对您应该如何解释x和y参数的影响?

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

NURBS(knotLast、degree、xType、yType、x1、y1、knot1、weight1等)

knotLast是最后一个结。

阶数样条线的阶数。

xType指定如何解释x输入数据。如果xType为0,则将所有x输入数据解释为宽度的百分比。如果xType为1,则所有x输入数据都被解释为局部坐标。

yType指定如何解释y输入数据。如果yType为0,则所有y输入数据都被解释为高度的百分比。如果yType为1,则所有y输入数据都被解释为局部坐标。

x1一个x坐标。

y1 a y坐标。

knot1 B样条曲线上的一个结。

weight1 B样条线上的权重。

票数 2
EN

Stack Overflow用户

发布于 2013-07-24 18:46:02

这可能会有所帮助: Graham Wideman提供的Visio2003开发者生存包

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

有一个关于Visio NURBS的广泛的章节。Kindle版的售价只有7美元。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17672267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档