Как изменить размер квадрата потянув за его ребро мышкой - 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 );
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д