Как изменить размер квадрата потянув за его ребро мышкой - 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 );
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы