Я пытаюсь написать код для отслеживания движения пальца по экрану. В том, что я хотел, чтобы две линии пересекались. Если две линии очень близки, то я хотел, чтобы они распознали их как соединенные. Для этого я попытался выдавить один конец и проверить, пересекается ли он с другим. Поэтому я написал следующий фрагмент:
`
Path exPath = new Path();
float dx = (float)Math.cos(ang)*lgt;
float dy = (float)Math.sin(ang)*lgt;
exPath.moveTo(xpos,ypos);
exPath.rLineTo(dx,dy);
exPath.op(mainPath, Path.op.INTERSECT);
if (!exPath.isEmpty()) {
//intersected
}
`
Но этот код не дал мне ожидаемого результата. Затем, когда я попробовал следующее, это дало мне некоторые нелогичные результаты.
`
Path exPath = new Path();
Path temp1 = new Path();
Path temp2 = new Path();
float dx = (float)Math.cos(ang)*lgt;
float dy = (float)Math.sin(ang)*lgt;
exPath.moveTo(xpos,ypos);
exPath.rLineTo(dx,dy);
temp1.op(exPath, exPath, Path.op.INTERSECT);
temp2.op(exPath, exPath, Path.op.UNION);
Log.d("TAG, "exPath.isEmpty? "+exPath.isEmpty());
Log.d("TAG, "temp1.isEmpty? "+temp1.isEmpty());
Log.d("TAG, "temp2.isEmpty? "+temp2.isEmpty());
`
Вывод для вышеупомянутого был:
D / TAG: exPath.isEmpty? false
D / TAG: temp1.isEmpty? true
D / TAG: temp2.isEmpty? true
Может кто-нибудь помочь с этим.