安卓中的三角形形状

3

我已经参考了许多关于绘制三角形形状的StackOverflow问题。

但是,我这里有一个特殊情况。以下是我想创建的组合形状。

矩形我可以管理。但是,我在三角形方面遇到了问题。我对角度感到困惑。

三角形的角度已经提到。

我已经有了下面的代码:

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item >
        <rotate
            android:fromDegrees="-45"
            android:toDegrees="0"
            android:pivotX="270%"
            android:pivotY="180%" >

            <shape
                android:shape="rectangle"  >
                <stroke android:color="@android:color/transparent" android:width="10dp"/>
                <solid
                    android:color="#000000"  />
            </shape>
        </rotate>
    </item>
</layer-list>

enter image description here

我想知道满足我的需求的以下数值:

android:fromDegrees=?
android:toDegrees=?
android:pivotX=?
android:pivotY=?

请帮我处理这个问题。

2个回答

0

我可以使用XML绘制三角形,如何根据您的要求使用,我不知道。

triangle.xml

<item>
    <rotate
        android:fromDegrees="45"
        android:pivotX="-40%"
        android:pivotY="87%"
        android:toDegrees="45" >
        <shape android:shape="rectangle" >
            <stroke
                android:width="10dp"
                android:color="#00000000" />

            <solid android:color="#00ACED" />  //your color
        </shape>
    </rotate>
</item>

triangle


你不知道的,就是我想要的...!那些fromDegrees、toDegrees、pivotX和pivotY中的值。 - MAST3RMIND

0

我猜您卡住的地方与 Android 没有关系(意思是您知道如何创建一个随机三角形),您需要帮助找到三个点。假设您知道 50 度时的坐标点 (x1,y1),

  1. 90 度时的点坐标为 (x1+d1,y1),其中 d1 是连接这两个点的边的距离。
  2. 底部的点坐标为 (x1+d1,y2),其中 y2 = acos(50)*d1。当然,使用 atan2 函数时应该用角度而不是弧度,或者您可以将其转换成弧度。

这是大致的想法。如果刚好知道另一个点,则可以按照相同的方式操作。 希望对您有所帮助。


我很感激你的解释,但如果你能在代码上帮助我会更好。我无法推断出XML的值。 - MAST3RMIND
我没有给你任何XML代码!不管怎样,你的数据是什么? - Eypros

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接