【问题标题】:How to rotate triangle such that its base is flat straight?如何旋转三角形使其底部平直?
【发布时间】:2018-10-25 01:25:06
【问题描述】:

考虑到我的英语不是很好。我会尝试使用图片

希望你能明白我的意思。基本上我想要的是我想旋转三角形,使三角形的底部是平直的(水平直的)。请记住,三角形是一个形状。我知道每个点的坐标,以及每个边缘的每个中点。我该怎么做?

【问题讨论】:

    标签: actionscript-3 flash actionscript flash-cs4


    【解决方案1】:

    (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
        }
    
    }
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      这似乎是一个等边三角形,所以你不能把三角形旋转 120 度吗?

      如果没有,您可以使用 Math.atan。简单地说,你可以得到 a 和 c 的 x 和 y 坐标。使用 x 和 y 之间的差异为您提供两个向量。然后 x = 相邻,y = 相反,因此 Math.atan(Opp, Adj) = 角度。然后选择您的对象并将其旋转一个额外的角度值。

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

      认为这就是你所追求的

      编辑

      所以这张图片是我认为你所追求的。我随机画了一个三角形。现在你想要 B.y = C.y。因此,如果您获得 r 的角度,您应该能够使用它来将三角形旋转正确的量,以便 B.y = C.y.

      您必须考虑如果 B.y > C.y 会发生什么情况,并对其进行调整以使其 100% 工作,但在此示例中应该可以工作。

      【讨论】:

      • 遗憾的是,它不是等边三角形。通过鼠标单击形成三角形的点。每次鼠标点击,我都会指向 (mouseX, mouseY)。所以,三角形可能是完全随机的。另外,你的意思是a和c还是b和c?因为字母 A 是蓝色的,所以有点看不见。
      • 我的意思是 b 和 c。抱歉,当我靠近时,我可以看到这是一个“b”,但如果那一侧最靠近基地,你仍然需要使用 a 和 c。
      • 我仍然不确定您所说的最接近基地是什么意思。根据我得到的信息,假设我们想象一条水平平线穿过点 B。你的意思是我需要找到水平线和线段 BC 形成的角度,对吗?然后将形状旋转该角度。我明白为什么会这样。但我不确定为什么我需要工作 a 和 c?
      • 我在想用户是否正在绘制三角形。如果他们使“a”最接近基地怎么办。如果“a”和“b”互换了怎么办?
      猜你喜欢
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 2023-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多