2D/3D CAD проектирование в JavaScript

у меня есть 2D-дизайн в микростанции, и я хотел представить этот дизайн в Интернете с помощью любого инструмента (javascript/Unity 3D или любого другого), где веб-инструмент не будет иметь всех функций, но основные функции, такие как изменение формы или добавление новой формы, должны быть имеется в наличии.

На данный момент мой подход заключается в том, что после того, как я создал дизайн на микростанции, я фиксирую свойства фигур, таких как координаты линии, и теперь использую эти координаты, которые я хотел представить в браузере, поскольку это 2D-дизайн, поэтому он будет построен в каком-то месте. (x, y), например, я создал линию в микростанции от (2,2) до (10,10), так что это будет прямая линия, и у меня есть все координаты, которые я пытался перерисовать в Unity, что я могу сделать но я столкнулся с проблемой изменения длины с (2,2) на (20,20) щелчком мыши. И моя цель — сделать это во время выполнения, а не в редакторе Unity.

Это пример прямой линии, которую я хотел сделать для всех геометрических фигур, буду признателен за любое руководство.

На данный момент я пытаюсь сделать это в Unity, но борюсь с частью редактирования. Есть ли способ добиться этого в единстве?

Я также просмотрел различные библиотеки javascript, такие как konvaJS, makerJS, ThreeJS и т. д., но, кроме konvajs, ни одна из других библиотек не предоставляет такие возможности, как изменение формы, в Konva также создание формы с помощью мыши не нашел решения для этого.

Можем ли мы достичь этого с помощью любого из двух подходов, конечно, я не ищу всю функциональность, а только несколько пользовательских функций, если да, какой подход будет лучшим и какой инструмент мне следует использовать. Любое руководство будет полезным.

Не все здесь знают, что Unity понимает three.js, konvajs и microstation. Что это? Я никогда не пользуюсь конвайсами и микростанциями и не понимаю, чего вы хотите добиться после перехода на Unity. stackoverflow.com/help/как спросить

zwcloud 30.07.2019 07:38

Я согласен, что не все здесь знают, что Unity может понимать библиотеку JS, поэтому я задал два вопроса, как это можно сделать с помощью Unity или Javascript, если есть парень с Javascript, он может ответить, иначе ответит парень из Unity, и лучшим из решений будет принятый

techipank 30.07.2019 07:46

Я имею в виду, что вы должны быть более конкретными в своей бизнес-логике: создал дизайн в микростанции, затем я фиксирую свойства фигур, такие как координаты линии, и теперь использую эти координаты, что такое фиксируя свойства фигур? Как использовать эти координаты? Что вы хотите сделать с этими координатами?

zwcloud 30.07.2019 08:30

@zwcloud спасибо за советы, как было предложено отредактировать мой вопрос, любая помощь будет оценена.

techipank 30.07.2019 08:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
4
657
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы нарисовать отрезок линии, вы можете использовать LineRenderer.

//two points of the line-segment are known (or got from the Transform of GameObject)
Vector3 start;
Vector3 end;

GameObject myLine = new GameObject();
myLine.transform.position = start;
myLine.AddComponent<LineRenderer>();
LineRenderer lr = myLine.GetComponent<LineRenderer>();
lr.material = new Material(Shader.Find("Particles/Alpha Blended Premultiply"));
lr.SetColors(color, color);
lr.SetWidth(0.1f, 0.1f);
lr.SetPosition(0, start);
lr.SetPosition(1, end);

//to change the points of this line
myLine.transform.position = another_start;
lr.SetPosition(0, another_start);
lr.SetPosition(1, another_end);

Есть и другие решения:

  • Используйте масштабируемый куб или капсульный примитив.
  • Сторонние плагины: векторизация

Чтобы получить позицию щелчка мышью, используйте Camera.main.ScreenToWorldPoint(Input.mousePosition).

Чтобы определить, когда щелкнули мышью, используйте Input.GetMouseButtonUp.

как насчет изменения этой строки во время выполнения?

techipank 30.07.2019 08:54

действительно спасибо за ваше руководство, еще одно сомнение, откуда вы взялись another_start и another_end я хотел зафиксировать это с помощью щелчка мыши, у меня нет значения для этого, у меня есть значение для start и end только что-то вроде перетаскивания длины линии

techipank 30.07.2019 08:58

@techipank Рад это знать! Пожалуйста, проголосуйте за ответ, если считаете его полезным.

zwcloud 07.08.2019 04:28

Другие вопросы по теме