首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义直线点的哪一边是。特例

定义直线点的哪一边是。特例
EN

Stack Overflow用户
提问于 2016-03-28 04:28:07
回答 1查看 134关注 0票数 1

我编写了一个Matlab代码,它允许定义直线点的哪一边。它在很多情况下都能正常工作,但我发现有一种特殊情况是很奇怪的。以下是代码:

代码语言:javascript
复制
clear all
close all
clc
polylineX = [9 15];
polylineY = [7 6];
hold on
for i = 1:27
    for j = 1:32
        point(1) = j-10;
        point(2) = i-101;
        pos = sign((polylineX(2) - polylineX(1)) * (point(2) - polylineY(1)) -...
                   (polylineY(2) - polylineX(1)) * (point(1) - polylineX(1)));

        if pos == 1
            plot(point(1),point(2),'r.','MarkerSize',5)
        elseif pos == -1
            plot(point(1),point(2),'m.','MarkerSize',5)
        elseif pos == 0
            plot(point(1),point(2),'k.','MarkerSize',5)
        end;
        pause(0.00000001);
    end;
end;
plot(polylineX,polylineY)

结果如下:

程序结果

红色代表“左”位置,“洋红色”代表右边位置,“黑色”代表线上的位置。你可以看到蓝线以及相对位置,我正在试图估计。正如您所看到的,结果是为另一条线绘制的。

怎么了?

例如,在实现我所查看的代码时,如下所示:

  1. 计算一条直线的哪一侧
  2. 如何判断一个点是在直线的右边还是左边?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-28 04:49:34

你的公式有个错误:

代码语言:javascript
复制
polylineY(2) - polylineX(1)

应该是

代码语言:javascript
复制
polylineY(2) - polylineY(1)

计算正确的行列式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36255979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档