三次ベジェ曲線の最接近点(近似二次ベジェ曲線を利用)
- 2023.12.10
三次ベジェ曲線の最接近点 最小二乗法を用いた二次ベジェ曲線による三次ベジェ曲線の近似によって求めた四つの近似二次ベジェ曲線における最接近点を求め、その結果から三次ベジェ曲線における最接近点を求めます。 step1 最小二乗法を用いた二次ベジェ曲線による三次ベジェ曲線の近似を用いて四つに区切った三次ベジェ曲線において、それぞれの区間に対し近似二次ベジェ曲線を求めます。二次ベジェ曲線は以下の通りで […]
三次ベジェ曲線の最接近点 最小二乗法を用いた二次ベジェ曲線による三次ベジェ曲線の近似によって求めた四つの近似二次ベジェ曲線における最接近点を求め、その結果から三次ベジェ曲線における最接近点を求めます。 step1 最小二乗法を用いた二次ベジェ曲線による三次ベジェ曲線の近似を用いて四つに区切った三次ベジェ曲線において、それぞれの区間に対し近似二次ベジェ曲線を求めます。二次ベジェ曲線は以下の通りで […]
二次ベジェ曲線の式 二次ベジェ曲線の式を以下の通りです。 $$ \begin{align} \begin{split} &x(t)=a_xt^2+b_xt+c_x\\ &y(t)=a_yt^2+b_yt+c_y \end{split} \tag{1} \end{align} $$ $$ \begin{align} \begin{split} &a_x=(P_{0x} […]
二次ベジェ曲線 二次ベジェ曲線の式は以下の通りです。 $$ B(t)=(1-t)^2P_0+2(1-t)tP_1+t^2P_2 \tag{1} $$ よって、\(x\)、\(y\)はそれぞれ $$ \begin{split} \begin{align} &x(t)=(1-t)^2P_{0x}+2(1-t)tP_{1x}+t^2P_{2x}\\ &y(t)=(1-t)^2P_{ […]
二次ベジェ曲線の微分 二次ベジェ曲線の式は以下の通りです。 $$ B(t)=(1-t)^2P_0+2(1-t)tP_1+t^2P_2 \tag{1} $$ よって、\(x\)、\(y\)はそれぞれ $$ \begin{align} &x(t)=(1-t)^2P_{0x}+2(1-t)tP_{1x}+t^2P_{2x} \tag{2}\\ &y(t)=(1-t)^2P_{0y} […]
一次導関数 n次B-スプライン曲線 n次B-スプライン曲線の式を以下に示します。mはノットベクトルの数です。 $$ \begin{align} \begin{split} &S(u)=\sum_{j=0}^{m-n-2}P_jb_{j,n}(u)\\\\ &b_{j,0}(u):=\begin{cases} 1 \hspace{10pt} if \hspace{10pt} u_ […]
前回求めた式を利用して制御点が5点の場合における二次B-スプライン曲線の最接近点を求めます。 式の導出 前回求めた二次B-スプライン曲線の式は $$ \begin{align} S&(u)=au^2+bu+c \tag{1}\\\\ a&=9b_{2,0}P_0+(9b_{1,0}-\frac{27}{2}b_{2,0}+\frac{9}{2}b_{3,0})P_1\\\\ […]
式の展開 制御点が5点の二次B-スプライン曲線の式は $$ S(u)=\sum_{j=0}^{4}P_jb_{j,2}(u) \tag{1} $$ $$ \begin{align} &b_{j,0}(u):=\begin{cases} 1 \hspace{10pt} if \hspace{10pt} u_j\leq u\lt u_{j+1}\\ 0 \hspace{10pt} othe […]
任意の座標からベジェ曲線上の最も近い点をニュートン法を用いて求めました。 ニュートン法 ニュートン法の方程式は $$ x_{n+1} = x_n-\frac{f(x_n)}{f'(x_n)} $$ です。これを繰り返し求めることで\(f(x) = 0\)となる\(x\)が求まります。しかし、条件によっては解に収束しないことがあります。 ベジェ曲線との距離 4点を通る三次ベジェ曲線で求めた式を […]
三次ベジェ曲線は二つの端点と二つの方向点によって形が決まります。この場合、ベジェ曲線は方向点を通りません。そこで、二つの端点とその間にある二つの点から方向点を決定し、この方向点を用いて4点を通る三次ベジェ曲線を求めました。 式 三次ベジェ曲線は以下の式で表されます。\(C_0\)及び\(C_3\)は端点、\(C_1\)及び\(C_2\)は方向点です。 $$ \begin{align} […]
CustomVolumeParameter VolumeComponentで利用できるVolumeParameterは予め用意されているものがあります。しかし、enumのように既存のVolumeParameter以外のParameterを利用したい場合があります。この場合、VolumeParameterを継承したクラスを作成し、新たにVolumeParameterを作成する必要があります。 Sc […]