设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1877|回复: 8
打印 上一主题 下一主题

[有事请教] 如何高效的判定射线相交呢?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
跳转到指定楼层
1
发表于 2013-10-27 10:00:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
两条射线 它的属性有起点和角度 怎么高效的判定他相交?

点评

何苦挖坟;解方程效率多么拙计  发表于 2014-11-15 17:08
参数方程  发表于 2014-11-15 12:16
射线1:起点(x1, y1),角度a;射线2:起点(x2, y2),角度b;射线相交<=>方程组x1 + t1cosa = x2 + t2cosb; y1 + t1sina = y2 + t2sinb有非负解。  发表于 2014-11-10 22:17
你可以用C++写dll,然后加载【雾  发表于 2013-10-27 11:08
难道这个算法不是在计算机上执行吗…………  发表于 2013-10-27 10:49
我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =

Lv3.寻梦者 (暗夜天使)

梦石
1
星屑
2971
在线时间
1041 小时
注册时间
2013-8-9
帖子
2328

R考场第七期纪念奖开拓者

2
发表于 2013-10-27 10:03:57 手机端发表。 | 只看该作者
首先如此,然后这般即可
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6643
在线时间
1275 小时
注册时间
2013-8-21
帖子
3657

开拓者

3
发表于 2013-10-27 10:10:43 | 只看该作者
方向相同?
是 返回假

  计算斜率和直线交点位置
  如果向量:起点->交点与射线方向不同
  返回假
  否则真
结束
【私以为射线的属性应该不是角度而是方向……

点评

Ruby的效率你认为呢,这个操作可是要一帧进行数百次的  发表于 2013-10-27 10:51
求交点就得解二元一次方程  发表于 2013-10-27 10:49
求交点本身就不是高效率的方法啊喂= =我原本也是这么打算的  发表于 2013-10-27 10:21
萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2013-8-5
帖子
12
4
发表于 2013-10-27 10:10:54 | 只看该作者
本帖最后由 Pantsu 于 2013-10-27 11:43 编辑

不平行就必然会相交,
如此一来就只看射线方向就行了
(我是小学生

参考一下这个?
http://zhidao.baidu.com/link?url ... _0r7vrIXiqnqMgCNRKK

点评

好吧看来我要多补补数学了。。。  发表于 2013-10-27 11:12
射线和直线是不同的哦,亲  发表于 2013-10-27 10:54
↓所以要判定方向。。  发表于 2013-10-27 10:20
是射线不是直线。。。  发表于 2013-10-27 10:13
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3582
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
5
发表于 2013-10-27 12:21:23 | 只看该作者
我觉得 你可以先去阅读下box2d的源码 里面连斜矩形碰撞都有 关于效率问题 所有三角函数都用查表 精确度 一般1/360就足矣了  开平方的话 用QUAKE3里的快速平方根算法

点评

好的,谢谢  发表于 2013-10-27 12:27
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

6
发表于 2013-10-27 14:00:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
10061
在线时间
4430 小时
注册时间
2005-10-22
帖子
6955

开拓者贵宾

7
发表于 2013-10-27 14:32:49 | 只看该作者
要高效,用汇编(重点错的大雾~\(≧▽≦)/~)

评分

参与人数 1星屑 +12 收起 理由
Mr.Jin + 12 汇编

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1457
在线时间
892 小时
注册时间
2011-3-4
帖子
839
8
发表于 2013-10-27 14:40:40 | 只看该作者
不平行即相交
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4169
在线时间
258 小时
注册时间
2013-10-13
帖子
815
9
发表于 2014-11-10 21:15:43 | 只看该作者
本帖最后由 kvkv97 于 2014-11-10 21:24 编辑

怎么简单的你都不会啊,可以做这样的判断:
在平面内
如果  两条射线不平行
    那么有相交和不相交
    如果  一条射线起点和另外一条射线起点重合,那么相交
    结束
    如果   一条射线起点和另外一条射线起点不重合,那么判断射线方向
         如果,一条射线方向和另外一条射线方向相反,那么不相交
         结束
         如果,一条射线方向和另外一条射线方向相同,那么相交
         结束
     结束
结束
在空间内
如果  两条射线不平行在平面内
    执行情况1
结束
如果 两条射线不平行在平面内
   不相交
结束

点评

射线相交和直线相交是两回事……而且你这种满地if的写法就算编译器不打死我我也要打死我……  发表于 2014-11-11 20:59
恩,以后不挖了  发表于 2014-11-10 21:24
提醒1:水区不要挖坟;提醒2:射线不是直线,所以即使射线所在直线不平行,两个射线还可以相交  发表于 2014-11-10 21:21
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-19 07:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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