游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3318|回复: 2

一道面试题(关于向量点乘,叉乘的运用),求解!

[复制链接]

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-5-18 22:49:00 | 显示全部楼层 |阅读模式
已知一个斜面的法线n,和其与地面的夹角θ,求斜面上一小球的运动方向,用向量表示 [em20]
大家给点思路,,

1

主题

24

帖子

31

积分

注册会员

Rank: 2

积分
31
发表于 2010-5-19 00:36:00 | 显示全部楼层

Re:一道面试题(关于向量点乘,叉乘的运用),求解!

设地面向量为V且为单位向量,法向量为N,斜面向量为L,则将V向L投影,其水平分量为L',垂直分量为N'.
由三角公式及N'与N平行,则N' = sin(a)N.
根据投影公式, L' = L * (L dot V)/|L||L|; 又L dot V =  |L||V|cos(a),带入,
              L' = L * cos(a) * |V| / |L|;

则 L' + N' = V  得到:  L /|L| = (V - sin(a)N)/cos(a);即为斜面的方向向量,小球的方向与其正好相反.

0

主题

43

帖子

71

积分

注册会员

Rank: 2

积分
71
发表于 2010-5-25 00:22:00 | 显示全部楼层

Re:一道面试题(关于向量点乘,叉乘的运用),求解!

    个人觉得夹角θ是多余的,题目应该告诉的是地平面的法向量和斜面的法向量(楼上的yfplane同学也是假设了地面法向量N的),夹角θ的大小只能改变物体的斜面加速度的大小。
    其实只要用2次叉乘就搞定了。第1次用两平面的法向量叉乘求得斜面与地平面的公共边(向量),第2次通过公共边(向量)与斜面的法向量叉乘而求出得小球的运动方向。实现如下:

假设地平面为floor(f_Dir,P),斜面为 incline(i_Dir,P), 求小球的运动方向ball_Dir。

2个平面的公共向量 c = f_Dir叉乘i_Dir;

ball_Dir = c 叉乘 i_Dir;

PS:确实没用到点积。。。点积一般都用在向量的投影上,结果是一个标量,是不具有方向的。
还是再说一下为什么用不到夹角θ。简单一点,假设这道题是在2D上面,那么小球的运动方向一定是在斜面上的,由于是2D的,所以面成了线,即小球的运动方向就是斜线方向,斜线与法向量垂直,法向量是已知的。所以θ多余。扩展到3D上也是一样的道理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-4 00:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表