游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4355|回复: 7

如何求两已知坐标的直线交点?

[复制链接]

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2004-6-10 09:28:00 | 显示全部楼层 |阅读模式
其实我想求一直线与矩形的交点,想比较四线边来进行.
如何解决?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-6-10 09:42:00 | 显示全部楼层

Re:如何求两已知坐标的直线交点?

s1为直线A的斜率,s2为直线B的斜率,n1为直线A和x轴的交点,n2为直线B和x轴的焦点。那么两条线的交点为:
x = (n2-n1)/(s1-s2);
y = x*s1 + n1 或者 y = x*s2 + n2

19

主题

202

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
QQ
发表于 2004-6-10 11:36:00 | 显示全部楼层

Re:如何求两已知坐标的直线交点?

是平面还是空间的?

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2004-6-10 11:45:00 | 显示全部楼层

Re:如何求两已知坐标的直线交点?

是平面,用 "/"是整除,误差好像很大...但用DOUBLE好像又比较难定.

还有一个问题:!!!!!
如何判断一个点是否落在某一直线上.

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-6-10 12:35:00 | 显示全部楼层

Re:如何求两已知坐标的直线交点?

比如求线段s1,s2的交点
首先任意指定一个upvector
然后upvector X s1,得到s1的法线n1
然后用s2线段端点减s1两个端点得到两个向量v1,v2
用v1 和 v2 分别点积n1得到两个端点在n1上的投影长l1,l2
如果l1和l2同号,说明无交点 ,如果都为0,那就是重合,如果有一个是0,那就是那个端点就是两线段的交点,如果异号,就用l1和l2的比例求出交点的位置

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2004-6-10 12:45:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

20

主题

473

帖子

502

积分

高级会员

Rank: 4

积分
502
发表于 2004-6-10 19:01:00 | 显示全部楼层

Re:如何求两已知坐标的直线交点?

方程法需要开方和求倒数操作,效率不高
而且不适合在3d空间中计算,需要判断太多

50

主题

992

帖子

1012

积分

金牌会员

Rank: 6Rank: 6

积分
1012
发表于 2004-6-11 00:13:00 | 显示全部楼层

Re:如何求两已知坐标的直线交点?

要看是2D的还是3D的,2D的方法还要简单些
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-1 16:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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