Как бы я нарисовал линию, используя холст, если я коснулся изображения с помощью onTouchevent? - PullRequest
1 голос
/ 03 марта 2012

Как бы я нарисовал линию, используя холст, если бы я касался изображения с помощью onTouchevent. Здесь я использую изображение в качестве фона и размещаю его на основе х / г-координат? Кроме того, возможно ли проверить, проведена ли линия в этих координатах? На самом деле, если бы я нарисовал линию, она бы перекрывала вид изображения. Линия должна рисовать само изображение внутри слоя. Как рассчитать положение изображения x, y? Спасибо,

Ответы [ 2 ]

0 голосов
/ 04 марта 2012

- это просто короткая фраза о том, что здесь есть больше кода, но это не важно с точки зрения того, что вы спросили.

Как решить для пересечения двух линий, скажем, этих двух, в форме пересечения по склону

у = 3х-3
у = 2,3х + 4

В точке пересечения они оба будут иметь одинаковое значение y-координаты, поэтому мы устанавливаем уравнения равными друг другу: 3x-3 = 2,3x + 4

Это дает нам уравнение в одном неизвестном (x), которое мы можем решить: Переупорядочить, чтобы получить x слагаемых слева 3x - 2,3x = 4 + 3 Объединение одинаковых терминов 0,7х = 7 Даёт х = 10

Чтобы найти y, просто установите x равным 10 в уравнении любой строки и решите для y: Уравнение для линии y = 3x - 3 (подойдет любая строка) Установите x равным 10 y = 30 - 3
Даёт у = 27

Теперь у нас есть и x, и y, поэтому точка пересечения (10, 27)

0 голосов
/ 03 марта 2012
public boolean onTouchEvent(MotionEvent event) {
    int eventaction = event.getAction(); 


   int X = (int)(event.getX()); 
   int Y = (int)(event.getY()); 

   switch (eventaction ) {
    case MotionEvent.ACTION_DOWN: 
        canvas.drawLine(X,Y,someOtherX, someOtherY, paint):
            break;
      <snip>
   }

Если вы хотите проверить, проведена ли уже линия с координатами X, Y, вам нужно сохранить список или массив линий, которые вы уже нарисовали, с их начальными / конечными координатами или наклоном / пересечениеми сделать алгебру.У вас есть текущая строка от X, Y до SomeOtherX, Y.Это был бы простой процесс прохождения каждой линии и определения, где, если вообще, две линии пересекаются и если они пересекаются на экране.

...