Нарисуйте параллельную линию с определенным расстоянием до уже перекошенной линии на холсте Android - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть Линия (,) на холсте, даже если она может быть перекошена, все, что я хочу сделать, это нарисовать новую параллельную линию относительно старой Линии (,) с равной длиной линии.Пробовал этот >>>>

    double d = getLength(x1, y1, x2, y2);
    double m = getSlope(x1, y1, x2, y2);
    double r = Math.sqrt(1 + Math.pow(m, 2));
    double endX = x + d / r;
    double endY = y + ((d * m) / r);
    return new double[]{x, y, endX, endY};

1 Ответ

0 голосов
/ 01 апреля 2019

Чтобы сделать параллельный отрезок, вам нужно построить перпендикулярный вектор необходимой длины. Обратите внимание, что есть два решения для обеих сторон сегмента

dx = x2 - x1
dy = y2 - y1
len = sqrt(dx*dx+dy*dy)
perpx = -dy * distance / len
perpy = dx * distance / len

// "left" line start
x1' = x1 + perpx
y1' = y1 + perpy
// "left" line end
x2' = x2 + perpx
y2' = y2 + perpy

// "right" line
x1'' = x1 - perpx
y1'' = y1 - perpy
x2'' = x2 - perpx
y2'' = y2 - perpy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...