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
算法
给两个不同的点,p1
和p2
在平面上,相应地,两个非零向量,u1
和u2
,有一个单参数族biarcs(即。,a curve consisting of two arcs with common tangent at their join) starting atp1
和正常的有u1
到最后p2
和正常的有u2
。用参数表示这个biarcs家族的一个方法是由正常的方向,v
,在点问
两个弧的加入。具有非零v
选择,有那么一个的选择问
,因此整个biarc然后确定。在建筑中使用rscvn
,v
选择反射,在垂直于段的p1
来p2
向量的平均值u1
和u2
之后,两个向量归一化,它们的长度是1,它们都指向右边的部分p1
来p2
。这个选择v
看起来自然在两个标准情况下:(i)u2
的反射u1
在垂直于段p1
来p2
;(2)u1
和u2
是平行的。这个选择的v
验证了Biarcs左边正常的函数这显示了生成的biarcs什么时候p1
,p2
,u2 = [.809; .588]
保持固定,只有正常的吗p1
允许不同。
Biarcs左边正常的函数
但这是不可能的插值biarc取决于连续四个数据,p1
,p2
,u1
,u2
。必须有一个不连续的正常方向,u1
和u2
,通过的方向p1
来p2
。这是说明Biarcs作为一个端点的函数这显示了biarcs当一个点,p1 = (0, 0)
,两个法线u1 = (1, 1)
和u2 = (1, 1)
只保持固定,另一点,p2
移动,周围一圈p1
。
Biarcs作为一个端点的函数