Как изменить размер квадрата потянув за его ребро мышкой - C#
Формулировка задачи:
Всем добрый день. Пишу для своего движка небольшой 3д редактор уровней (базовый функционал) на подобии Valve Hammer. Так вот, в чем проблема? Проблема в том
что у меня не получается нормально реализовать изменения размеров браша. А именно когда я рисую с верхнего левого угла в правый нижний (и не только), то вершины отзеркаливаються и перетаскиваются тогда противоположные. Как это справить? Я пытался это профиксить, но все идеи которые ко мне приходили не помогали
Вот здесь я хочу увеличить правую сторону, но оно изменяет левую (движется в сторону курсора)
Помогите решить эту проблему
Решение задачи: «Как изменить размер квадрата потянув за его ребро мышкой»
textual
Листинг программы
protected void InitBrush( Vector3f StartPosition, Vector3f EndPosition ) { if ( StartPosition.X == 0 ) StartPosition.X = Viewport.fSize; if ( StartPosition.Y == 0 ) StartPosition.Y = Viewport.fSize; if ( StartPosition.Z == 0 ) StartPosition.Z = Viewport.fSize; Position = Program.Align( StartPosition, Viewport.fSize ); EndPosition = Program.Align( EndPosition, Viewport.fSize ); Size.X = EndPosition.X - Position.X; Size.Y = EndPosition.Y - Position.Y; Size.Z = EndPosition.Z - Position.Z; if ( Size.X < 0 ) { Position.X = EndPosition.X; Size.X = Program.Align( Math.Abs( Size.X ), Viewport.fSize ); } if ( Size.Y < 0 ) { Position.Y = EndPosition.Y; Size.Y = Program.Align( Math.Abs( Size.Y ), Viewport.fSize ); } if ( Size.Z < 0 ) { Position.Z = EndPosition.Z; Size.Z = Program.Align( Math.Abs( Size.Z ), Viewport.fSize ); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д