我正在用Java编写一个工具,可以在Graphics对象上进行一些绘图。但是,我遇到了一个问题,不知道该如何解决。希望有人能够帮忙解答。如何确定坐标为x,y的点在图形对象上与从(例如)200,200到392,144延伸的线相交。听起来很简单,但我被卡住了……求助!
t
(x=200+t_x*192
;y=200+t_y*-56
)。如果t_x
和t_y
是相同的值,并且此值介于0和1之间,则(x,y)在该线上。 - schnaadert_x = (x - 200) / 192
和 t_y = (y - 200) / -56
吗? - Yew Longy = mx+c
其中,m为斜率:m = (y2-y1)/(x2-x1);
c为y轴截距:c = y1 - m * x1;
得到方程后,你可以通过将其x坐标代入方程并检查输出的y坐标是否匹配来测试任何点是否在该直线上。Line2D
变量,但适用于数学变量。 - Joey从数学上讲,您可以找到两个点的斜率,并将其与新点的斜率与旧点的每个斜率进行比较。
在Java中,您可以使用Line2D.contains(double x, double y);
编辑:stackoverflow上的人们非常迅速。:-)