Как повернуть треугольник так, чтобы его основание было ровным? - PullRequest
0 голосов
/ 15 мая 2018

учитывая мой английский не очень хорошо.Я постараюсь использовать картинку

enter image description here

Надеюсь, вы понимаете, о чем я.По сути, я хочу повернуть треугольник так, чтобы основание треугольника было плоским, прямым (горизонтально прямым).Имейте в виду, что треугольник - это форма.и я знаю координаты каждой точки и каждой средней точки каждого ребра.Как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

(1)

" По сути, я хочу повернуть треугольник так, чтобы основание треугольника плоское прямое (горизонтально прямое)."

Вы можете просто установить как point_C.y = point_B.y (это поместит точку C на ту же вертикальную высоту, что и точка B, так что теперь горизонтальная линия между этими двумя точками будет прямой.

(2)

" Точка треугольника образована щелчком мыши. Каждый щелчок мышью, я сделать точку в (mouseX, mouseY). Таким образом, треугольник может быть совершенно случайным."

Я бы сделал переменную для подсчета кликов ...

//# count clicks to know when straight line is needed
public var count_Clicks :uint = 0;

//# straight line via "IF" statement
private function draw_Triangle_Point (evt :MouseEvent) : void    
{
    count_Click += 1; //add plus 1

    if (count_Clicks == 3)
    {
        point_C.x = stage.mouseX;
        point_C.y = point_B.y; //straight (horiz) line

        count_Clicks = 0; //reset
    }
    else
    {
        //draw your other two points
    }

}

Надеюсь, это поможет.

0 голосов
/ 15 мая 2018

Кажется, это равносторонний треугольник, так что вы не могли бы просто повернуть треугольник на 120 градусов?

Если нет, вы можете использовать Math.atan. Итак, прямо говоря, вы можете получить координаты х и у а и с. Используйте разницу между X и Y, чтобы дать вам два вектора. Тогда x = смежный, y = противоположный и, таким образом, Math.atan (Opp, Adj) = угол. Затем выберите ваш объект и поверните его на дополнительное значение угла.

https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Math.html#atan()

Подумайте, что вы ищете

Редактировать

enter image description here

Так что это изображение - то, что я думаю, что вы ищете. Я случайно нарисовал треугольник. Теперь вы хотите B.y = C.y. Поэтому, если вы получите угол r, вы сможете использовать его, чтобы повернуть треугольник на правильную величину, чтобы B.y = C.y.

Вам нужно будет подумать, что если B.y> C.y, и адаптировать его, чтобы он работал на 100%, но в этом примере это должно сработать.

...