精華區beta Mechanical 關於我們 聯絡資訊
我想繼續針對我上次的問題繼續發問 空間中有三點A(0,0,0) B(1,2,3) C(8,5,9) AB為一線段,AC為一線段 現在想要AB轉至AC線段上,使AB與AC重疊 以下是我寫為MATLAB的做法,但無法重疊 請教板上各位大大 該如何改寫,或者我的方法錯誤,感謝教導 A=[0;0;0] B=[1;2;3] C=[8;5;9] %alfa 旋轉X軸之角度,(投影在YZ平面) q1=B(2,:)*C(2,:)+B(3,:)*C(3,:) q2=sqrt((B(2,:).^2+B(3,:).^2)*(C(2,:).^2+C(3,:).^2)) alfa=acosd(q1/q2) %alfa=360-alfa alfa=alfa*pi/180 Rx=[1 0 0; 0 cos(alfa) -sin(alfa); 0 sin(alfa) cos(alfa)] B1=Rx*B %-------------------------------------------------------- %theta 旋轉Z軸之角度,(投影在XY平面) q3=B1(1,:)*C(1,:)+B1(2,:)*C(2,:) q4=sqrt((B1(1,:).^2+B1(2,:).^2)*(C(1,:).^2+C(2,:).^2)) theta=acosd(q3/q4) %theta=360-theta theta=theta*pi/180 Rz=[cos(theta) -sin(theta) 0; sin(theta) cos(theta) 0; 0 0 1] B2=Rz*B1 %------------------------------------------------------- %beta 旋轉Y軸之角度,(投影在XZ平面) q5=B2(1,:)*C(1,:)+B2(3,:)*C(3,:) q6=sqrt((B2(1,:).^2+B2(3,:).^2)*(C(1,:).^2+C(3,:).^2)) beta=acosd(q5/q6) %beta=360-beta beta=beta*pi/180 Ry=[cos(beta) 0 sin(beta); 0 1 0; -sin(beta) 0 cos(beta)] B3=Ry*B2 PO=[A';B3';A';C'] plot3(PO(:,1),PO(:,2),PO(:,3)) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.101.181
d1d1:分類後有一個空格, [學術] 三維…… 06/24 15:44
raypeter96:請問一下,那我該怎麼更改 06/24 16:17
d1d1:回到文章列表,在你的文章前按大寫T即可 06/24 16:21
goodrain:大寫的e吧 06/24 17:04
※ 編輯: raypeter96 來自: 140.120.101.181 (06/24 18:06)
raypeter96:感謝糾正 06/24 18:07
alamabarry:其實我看不太懂你的目的是什麼耶?? 06/25 11:37
alamabarry:看起來也不像是座標軸旋轉 06/25 11:39
alamabarry:向量AB 乘以AC單位向量不就結束了嗎? 06/25 11:40