2016-07-25 10 views
1

おそらくこれは基本的な質問ですが、特にこのようなものは何も見つかりませんでしたし、最良の方法でこれを行う方法が不思議です。MATLABの2つのデカルト点の間にスパイラルを作成

私は2組の点(x1、y1、z1)と(x2、y2、z2)を持っており、極座標に変換しました。私は、半径が減少する反時計回りの螺線を作成して2番目の点に到達したいと考えています。

また、何回転するかを指定したいと思います。

私が見たすべての例は、x軸上の2つの点と時計回りの点です。

ご意見をいただければ幸いです。

ありがとうございました。

+0

参照[アルキメデス螺旋(https://en.wikipedia.org/wiki/Archimedean_spiral)または[対数螺旋(https://en.wikipedia.org/wiki/Logarithmic_spiral ) – excaza

+0

ありがとう、しかし、それは私が使ってきたものです。私はそれらのようなグラフを持っていますが、私はx軸上にない点から始めたいと思います。 – user2638997

答えて

0

このサンプルコードは、x軸上にないp1からp2まで反時計回りの螺旋を生成し、回転数を指定することができます。しかし、それは2Dであり、初期点はデカルト座標である。私は3Dでそれを行う方法がわかりませんが、これが相殺と逆時計を使ってあなたを助けることを願っています。

%random 2d points 
p1 = [3,5]; 
p2 = [1,4]; 

%radius of first point to second 
r = norm(p1-p2); 
%angle between two point wrt the y-axis 
theta_offset = tan((p1(2)- p2(2))/(p1(1)-p2(1))); 

rez = 150; % number of points 
rev = 5; % number of revolutions 

t = linspace(0,r,rez); %radius as spiral decreases 
theta = linspace(0,2*pi*rev,rez) + theta_offset; %angle as spiral decreases 
x = cos(theta).*t+p2(1); 
y = sin(theta).*t+p2(2); 
plot(x,y) 

enter image description here

関連する問題