【发布时间】:2016-03-28 04:28:07
【问题描述】:
我编写了一个 Matlab 代码,它允许定义线点的哪一侧。它在许多情况下都可以正常工作,但是我发现了一种奇怪的特殊情况。代码如下:
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)
结果如下:
红色代表“左边”位置,“洋红色”代表右边位置,“黑色”代表直线上的位置。您可以看到蓝线以及我试图估计的相对位置。如您所见,绘制的结果与另一条线一样。
怎么了?
在实现我查看的代码时,例如,这里:
【问题讨论】: