Я пытаюсь нарисовать линии со смещением к основной линии, как на вложении. Смещение линии (параллельные линии) без точек возврата
У меня проблемы с кодом. Он создает пересечения и точки возврата на линиях. (Приложение)
Может быть кто-то может помочь мне с этим кодом предоставить любой рабочий пример, который я могу следовать.
// LEFT SIDE OF MAIN LINE
int numberOfLines = 10;
float offset = 10f;
lastLinePoints = outerPoints; // outerPoint = Points from Main Line
for(int i = 0; i < numberOfLines; i++)
{
List<Vector3> tempPoints = new List<Vector3>();
for (int k = 0; k < lastLinePoints.Count; k++) {
if (k + 1 < lastLinePoints.Count) {
Vector3 direction = lastLinePoints [k + 1] - lastLinePoints [k];
// up direction:
Vector3 up = new Vector3(0.0f, 1.0f, 0.0f);
// find right vector:
Vector3 right = Vector3.Cross(direction.normalized, up.normalized);
Vector3 newPoint = lastLinePoints [k] + (right * offset);
tempPoints.Add (newPoint);
}
}
VectorLine lineTemp = new VectorLine ("lineCurved", tempPoints, 120f/_camera2DObject.GetComponent<Camera>().orthographicSize, LineType.Continuous);
lineTemp.Draw3D();
lastLinePoints = tempPoints;
}
После некоторых исследований я знаю, что решение для рисования изогнутых параллельных линий может быть затруднено. Я нашел также некоторые алгоритмы (https://hal.inria.fr/inria-00518005/document), но эта математика для меня трудно сделать код.
После предложения от @jstreet я попробовал библиотеку CLIPPER. Результаты очень хорошие, но это можно сделать только параллельную линию вместо замкнутого многоугольника вокруг линии (как на вложении)
UPDATE
Я написал еще один вопрос becouse я думаю, что использование CLIPPER для параллельных линий стоит , LINK TO question
Можете ли вы представить полный пример того, что вы делаете? Так что он на самом деле рисует линии из вашего прикрепленного изображения. – Evk
Этот код фактически рисует эти строки, кроме первого. Первые однострочные точки указаны в списке внешних точек. Я думаю, что здесь не нужно прикладывать список с сотнями баллов –
seek
И какую библиотеку вы используете для рисования? – Evk