找回密码
 注册
Simdroid-非首页
查看: 70|回复: 3

线段与面相交的快速求法

[复制链接]
发表于 2015-11-15 18:25:57 | 显示全部楼层 |阅读模式 来自 湖南
悬赏50仿真币未解决
问题描述:有大约20万组数据,每组数据为两个空间点的坐标(x1,y1,z1,x2,y2,z2);
有个局部平面ax+by+cz+d=0 (a<x<b,c<y<d).

问题:
1、怎么求出每组数据形成的空间直线与这个面的交点(如果相交)
2、如果数据量继续增大,怎么快速计算?

网上搜索相关的例子,找到了这么个帖子,里面判断是否相交的思路比较好
http://www.ilovematlab.cn/thread-252559-1-1.html
但如何计算交点,没有解释。

望大虾们帮帮忙,万分感谢,感谢!
如果可能,写个简简单单的例子就更好了 {:soso__3110130392203091378_3:}




 楼主| 发表于 2015-11-16 21:50:28 | 显示全部楼层 来自 湖南
Simdroid开发平台
各位大侠,麻烦你们
哪怕是一点点思路也是很有用的,集思广益,说不定你的一句话就能帮助我解决问题
拜托各位
回复

使用道具 举报

发表于 2015-11-17 04:26:15 | 显示全部楼层 来自 英国
这个与其说是编程算法,不如说是数学问题。






例:
  1. a = 1; b = 2; c = 3; d = 4;
  2. x1 = 1; y1 = 3; z1 = -4.8; x2 = 2; y2 = 4; z2 = -3.6;
  3. A = [  x2-x1, -1,  0,  0;
  4.          y2-y1,  0, -1,  0;
  5.          z2-z1,  0,  0, -1;
  6.                0,  a,  b,  c];
  7. B = -[x1; y1; z1; d];
  8. A\B
复制代码

X(1)如果在0和1之间,则交点在线段上。
X(2:4)分别对应坐标值的三个分量, 也可用来检查是否位于局部平面内。

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2015-11-17 23:27:24 | 显示全部楼层 来自 湖南
nwcwww 发表于 2015-11-17 04:26
这个与其说是编程算法,不如说是数学问题。

我怎么没想到这种方法呢?  看来差距不是一星半点的。
万分感谢。

翻看了下您的帖子,真的狠厉害狠厉害。
不管是做cody的例子,还是回答问题,出手凌厉,简单明了,一大牛人啊!!!
里面有好多命令、算法的搭配,都使人豁然开朗,真的厉害。
不亏是剑桥的牛人,能接触到matlab的更高层,果然不同凡响。

再次感谢您的回复,谢谢。
BTW:字写的不错,有赵孟頫的风格 :lol :lol
回复

使用道具 举报

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

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-23 20:20 , Processed in 0.027301 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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