|
|
1
7
最好的方法是使用直线的相交方法。像前面提到的另一个用户一样,您需要在他们单击的地方有一个缓冲区。因此,创建一个以鼠标坐标为中心的矩形,然后测试该矩形是否与线相交。下面是一些应该工作的代码(没有编译器或其他东西,但是应该很容易修改)
} |
|
2
4
如果您使用的是2dapi,那么它已经得到了处理。 你可以用 Line2D.Double 类来表示行。double类有一个contains()方法,它告诉您点是否在直线上。 |
|
|
3
4
首先,由于一条数学线没有宽度,用户很难准确地点击它。因此,您的最佳选择是找到一些合理的缓冲区(如1或2像素,或者如果您的线条以图形方式具有宽度,则使用该缓冲区),并计算从鼠标单击点到线条的距离。如果距离在缓冲区内,则选择该行。如果您属于多行缓冲区,请选择最接近的一行。 这里是线条数学: http://mathworld.wolfram.com/Point-LineDistance2-Dimensional.html |
|
|
4
0
对不起,数学还是需要的…来自java.awt.geom.line2d:
我推荐东芝的答案 |
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |