首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
专题开发/技术/项目
游戏开发
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
3维线段如何求交点
[已结贴,结贴人:gismaster08]
加为好友
发送私信
在线聊天
gismaster08
等级:
可用分等级:
长工
总技术专家分:
0
总技术专家分排名:
311804
揭帖率:
50.00%
发表于:
2008-02-12 11:20:49
楼主
根据计算机图形学里的公式
(C*D).A
t=- ——————
(C*D).B
(A*B).C
s=- ——————
(A*B).D
点p1,p2,q1,q2
A=p1,B=p2-p1,C=q1,D=q2-q1
直线方程
p(t)=A+Bt
q(s)=C+Ds
如何判断无解和无穷解(共线问题)
问题点数:
20
回复次数:
2
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
aceattacker
零件
等级:
可用分等级:
中农
总技术专家分:
1303
总技术专家分排名:
15552
发表于:
2008-02-17 05:22:30
1
楼 得分:
10
p1,p2是A线段,p3,p4是B线段
La = (p2 - p1)
Lb = (p4 - p3)
AB = p3 - p1
Ra = dot( La, AB )
Rb = dot(-Lb, AB )
L11 = dot( La, La )
L22 = dot( Lb, Lb )
L12 = dot( -La, Lb )
Ra = dot( La, )
t = ( L11 * Rb - L12 * Ra ) / ( L11 * L22 - pow( L12, 2 ) )
s = ( Ra - L12 * t ) / L11
如果线段A长为0,s的等式无效
如果任何一条线段的长度为0或两条线段平行,则t无效
(想知道更多可以参看一下《游戏编程精粹2中》的“一种快速、健壮的计算3D线段交点方法”)
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
happy__888
[顾问团]寻开心 www.e-jjj.com
等级:
可用分等级:
小地主
总技术专家分:
76958
总技术专家分排名:
78
11
9
3
发表于:
2008-02-19 16:38:50
2
楼 得分:
10
只判断是否是无解还是无穷解无需那么复杂,可以投机取巧的
你已经把线段表示成为点和方向量的模式了
1 判定是否共面
利用异面直线之间的距离公式来判断, 不需要计算出具体的距离是多少, 所以可以只看分子,而不管分母
2 判断是否平行
b和d是方向向量,判断他们的点积是否是0就够了
3 判断是否共线
满足共面和平行条件后, 看点到直线的距离,同样不看分母而只看分子就是了
这是理论上的数据
你要考虑到实际的数学运算当中会有精度的问题, 浮点数和0比较的问题,
要想完全的判断还是有些复杂的
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友