24小时热门版块排行榜    

查看: 667  |  回复: 3

astringent

铜虫 (著名写手)

[交流] 【求助】关于向量投影的问题 已有2人参与

有两个点A(x1,y1,z1),B(x2,y2,z2),现在以由点A和B确定的直线为基准轴,我想求的是当以物体由点C(x3,y3,z3)运动到点D(x4,y4,z4)时,沿AB基准轴方向的位移以及沿垂直于AB基准轴方向的位移。我写了一个程序,劳烦大家帮忙看看,这个程序有没有问题以及能不能实现我的目的?请大家不吝赐教。
program get_projection
implicit none
real x1,y1,z1
real x2,y2,z2
real x3,y3,z3
real x4,y4,z4
real theta
real dx1,dy1,dz1,dx2,dy2,dz2
real px1,py1,pz1,px2,py2,pz2
real r1,r2

! 求基准轴AB
  dx1=x2-x1
  dy1=y2-y1
  dz1=z2-z1
!求CD的位移(前保存的结果)
   dx2=x4-x3
  dy2=y4-y3
  dz2=z4-z3
!求AB和CD的模
  r1=dx1**2+dy1**2+dz1**2
r2=dx2**2+dy2**2+dz2**2
!由点乘公式计算AB与CD所形成的角theta
theta=acos ((dx1*dx2+dy1*dy2+dz1*dz2)/(sqrt(r1)*sqrt(r2)))
!计算沿AB基准轴方向的位移
  px1=dx2*cos(theta)
  py1=dy2*cos(theta)
  pz1=dz2*cos(theta)
!沿垂直于AB基准轴方向的位移
  px2=dx2*sin(theta)
  py2=dy2*sin(theta)
  pz2=dz2*sin(theta)
end

[ Last edited by ghcacj on 2011-1-21 at 20:42 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ghcacj(金币+3): 谢谢 2011-01-23 15:42:22
你这就是很简单的向量投影啊。你画个图,用手也能算出来,平面解析几何问题罢了,甚至只用解三角形的方法就可以做出来。然后和你的程序结果比较一下,对不对就很清楚了。
2楼2011-01-21 17:45:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★
ghcacj(金币+2): 谢谢 2011-01-23 15:42:31
先随便定个点A,B,再定个点C,D,自己一算,不就行了。再用程序算一遍。但要考虑各个方向,多试算几下。
3楼2011-01-21 17:46:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

astringent

铜虫 (著名写手)

引用回帖:
Originally posted by 老虎大王 at 2011-01-21 17:46:58:
先随便定个点A,B,再定个点C,D,自己一算,不就行了。再用程序算一遍。但要考虑各个方向,多试算几下。

谢谢提醒,我试试先。
4楼2011-01-22 05:28:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 astringent 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见