明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: yulijin608

[求助]请问怎么判断任意一点在直线的哪一侧?

  [复制链接]
发表于 2007-4-5 17:12 | 显示全部楼层
唉,这个我也会,我想要的是怎么通过数学方法判断啊.
发表于 2007-4-6 15:57 | 显示全部楼层
本帖最后由 作者 于 2007-4-6 16:35:49 编辑

数学问题的设定:

    设直线的两端点分别A和B, 一指示直线的一侧的点为Pref(要判断在直线的那一侧),现在要判断任意点P在直线AB的那一侧?也既是任意点P与指示点Pref是否在直线AB的同一侧的问题.

解:

    以直线的一端点A为起点,端点
   B ,
指示点Pref 和任意点P 为终点的矢量分别设为V0, V1V2. 任意点P 点和指示点Pref在直线AB的同一侧的话,外积
  (V0×V1) 和 (V0×V2) 的符号相同.

总结如下:

 (1)   (V0×V1) 0 --- 指示点Pref在直线AB上

 (2)   (V0×V2) 0 --- 任意点P在直线AB上

 (3)   (V0×V1) · (V0×V2)     0 ---  PrefP在直线AB的同一侧    
             (V0
×V1) · (V0×V2)      0 ---  PrefP不在直线AB的同一侧

式中:
   
×为矢量的外积运算符,
   
·为矢量的内积运算符.

******************************************************************

另外,正如楼上所说,判断点在直线的一侧问题,只对2维空间的线有意义,

在3维空间里,应讨论在面的那一侧问题.

本帖子中包含更多资源

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

x
发表于 2007-8-27 12:04 | 显示全部楼层
嘻嘻哈哈,不错,不错
发表于 2007-8-27 14:22 | 显示全部楼层
fengfan发表于2007-4-5 17:12:00唉,这个我也会,我想要的是怎么通过数学方法判断啊.

本人数学不好,能否将数学方法用二元表示出来,谢谢.

发表于 2007-8-27 23:32 | 显示全部楼层

左右方向是相对前进方向的,只要指定了前进方向就可以知道左右(比如指定前进方向是从直线的起点到终点).判断点在直线的左侧还是右侧是计算几何里面的一个最基本算法.使用矢量来判断.

  定义:平面上的三点P1(x1,y1),P2(x2,y2),P3(x3,y3)的面积量:   
            |x1   x2   x3|   
S(P1,P2,P3)=|y1   y2   y3|= (x1-x3)*(y2-y3)-(y1-y3)(x2-x3)   
            |1    1     1|  


  当P1P2P3逆时针时S为正的,当P1P2P3顺时针时S为负的。  
   
  令矢量的起点为A,终点为B,判断的点为C,  
        如果S(A,B,C)为正数,则C在矢量AB的左侧;  
        如果S(A,B,C)为负数,则C在矢量AB的右侧;  
        如果S(A,B,C)为0,则C在直线AB上。

发表于 2018-2-7 15:40 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-29 14:48 , Processed in 0.197971 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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