主要内容

rscvn

分段biarc埃尔米特插值

语法

c = rscvn (p u)
c = rscvn (p)

描述

c = rscvn (p u)返回一个平面分段biarc曲线(二次rBform),在秩序,通过给定的点p (:, j)和构造(参见下面的方式建设Biarc)。任何两个不同的点之间p (:, j)p (: j + 1)曲线,通常包含两个圆弧(包括直线段),加入切连续性,与第一弧开始p (:, j)和正常的有u (:, j),第二个弧结束p (: j + 1)和正常的有u (: j + 1),两个弧写成一个只要是可能的。因此曲线tangent-continuous除,也许在重复点,曲线可能有一个角落里,或者当角,由两段结束p (:, j)曲线,非常小,在这种情况下,可能有一个尖端。

p必须是一个真正的矩阵,有两行,和至少两列,和任何列必须不同于至少一个周边列。

u必须是一个真正的矩阵有两行,与相同数量的列p(两个例外,见下文),可以没有0列。

c = rscvn (p)选择以下方式的法线。为j = 2: end-1,u (:, j)的平均值(规范化、右旋)法线向量p (:, j) - p (:, j - 1)p (: j + 1) - p (:, j)。如果p (: 1) = = p(:,结束),然后结束法线都选为法线的平均值p (: 2) - p (: 1)p(:,结束)- p (:, end-1)因此预防产生的闭合曲线的一个角落里。否则,最后法线如此选择,只有一个弧在第一个和最后一个段(not-a-knot结束条件)。

rscvn (p u),u有两列,也选择了室内法线时的情况u缺席,但使用的两列u端点法线。

例子

例1。下面的代码生成的描述一个圆,用四块。除了结不同比例的序列,它所提供的是相同的描述rsmak(‘圆’,1,(1,1))

p = [1 0 1 0 1;0 1 0 1 0];c = rscvn ([p (1:) + 1, p (2:) + 1], p);

相同的圆,但仅使用两块,是提供的

c2 = rscvn ([0 2 0;1,1,1);

例2。下面的代码块两个字母。注意,第二个字母是插值的结果只有4分。还要注意翻译的使用绘图的第二封信。

p = [1。8 1 1 1 1 1;3 1.75 5 -1.25 3 3 3];我眼睛= (2);u =我(:[2 1 2 1 2 1 1]);B = rscvn (p u);S = rscvn ([1 1 1 1;2.5 2.5 -2.5 -2.5]);fnplt (B),等等,fnplt (fncmb(年代,[3;0])),推迟轴相同的情况下,轴

两个字母组成的圆形弧线

例3。下面的代码生成建设Biarc在下面的讨论中使用的biarc建设使用。注意使用fntlr找到biarc开始切,两弧的加入,最后。

p = [0 1; 0 0];u = [。5约;-。25 5];情节(p (1:)、p (2:),“k”),抓住biarc = rscvn (p u);休息= fnbrk (biarc, b);fnplt (biarc断裂(1:2),“b”, 3), fnplt (biarc,减免(2:3),“r”, 3) vd = fntlr (biarc 2优惠);箭袋(vd (1:), vd (2:), vd (4:), vd(3,:)),推迟

建设Biarc

算法

给两个不同的点,p1p2在平面上,相应地,两个非零向量,u1u2,有一个单参数族biarcs(即。,a curve consisting of two arcs with common tangent at their join) starting atp1和正常的有u1到最后p2和正常的有u2。用参数表示这个biarcs家族的一个方法是由正常的方向,v,在点两个弧的加入。具有非零v选择,有那么一个的选择,因此整个biarc然后确定。在建筑中使用rscvn,v选择反射,在垂直于段的p1p2向量的平均值u1u2之后,两个向量归一化,它们的长度是1,它们都指向右边的部分p1p2。这个选择v看起来自然在两个标准情况下:(i)u2的反射u1在垂直于段p1p2;(2)u1u2是平行的。这个选择的v验证了Biarcs左边正常的函数这显示了生成的biarcs什么时候p1,p2,u2 = [.809; .588]保持固定,只有正常的吗p1允许不同。

Biarcs左边正常的函数

但这是不可能的插值biarc取决于连续四个数据,p1,p2,u1,u2。必须有一个不连续的正常方向,u1u2,通过的方向p1p2。这是说明Biarcs作为一个端点的函数这显示了biarcs当一个点,p1 = (0, 0),两个法线u1 = (1, 1)u2 = (1, 1)只保持固定,另一点,p2移动,周围一圈p1

Biarcs作为一个端点的函数

另请参阅

|