在matlab中怎样画出球面两点间的劣弧
这个其实是一个三维空间中旋转的问题,要么用四元数,要么用欧拉角,要么硬推。
■网友
这是个数学问题。我的做法是把这个球沿Z轴转theta1让P点转到(0,10,0),然后再沿Y轴转theta2让Q点到YZ平面(把x_Q转成0),这样两个点都在YZ平面了。在YZ平面画个劣弧line3,再把line3沿Y轴转-theta2,再沿Z轴转-theta1
如果PQ两个点的6个坐标都不是0则需要转3次才能把两个点都转到nb的平面上。clf=sphere(100);surf(x*10,y*10,z*10,\u0026#39;linestyle\u0026#39;,\u0026#39;none\u0026#39;)view()hold onaxis equalP=\u0026#39;;plot3(P(1,:),P(2,:),P(3,:),\u0026#39;o\u0026#39;,\u0026#39;linewidth\u0026#39;,2,\u0026#39;markersize\u0026#39;,10)rotZ=@(x);rotY=@(x);rotX=@(x);theta1=atan(P(1,1)/P(2,1));P2=rotZ(theta1)*P;theta2=atan(P2(1,2)/P2(3,2));P3=rotY(theta2)*P2;theta3=atan(P3(3,:)./P3(2,:));theta3=(0:100)/100*(theta3(2)-theta3(1))+theta3(1);line3=;line3=rotZ(-theta1)*rotY(-theta2)*line3;plot3(line3(1,:),line3(2,:),line3(3,:),\u0026#39;black\u0026#39;,\u0026#39;linewidth\u0026#39;,2)
【在matlab中怎样画出球面两点间的劣弧】
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义
