当前位置: 首页 > 网络应用技术

[颤音技巧]路径变换

时间:2023-03-08 21:10:16 网络应用技术

  让我们讨论道路的转变。我们知道它也支持转型。是否有任何转变?变化有什么区别?如何重叠转型中的各种转换效应,如何修改变更中心?这些是绘图的基本技能。这篇文章将用作补充“ Flutter Drawing Guide -Miaobi Flower”的内容,该内容将与小书同步。对于本文的源代码,请参见[IDRAW/EXTER_03_PATH]

  1.绘制路径测试如下,并用作绘画板来绘制以下模式:左上角是三角形路径。坐标系使用帆布中心作为原始点,正方形是正方向,是正方向,仅扮演帮助和观看角色。对于通过先前封装的类绘制,请参考它。

  可以看出,默认情况下,画布的左上角用作原点。

  2.绘画板的转换和路径的转换。现在,如果您想将此三角形作为原始点,则有很多方法可以意识到这一需求。有两个方向,一个已处理,另一个已处理。

  以下是一个转换,将绘画板的左上角移至中心,如以下浅蓝色区域:

  如下所示,画布可以完成而不更换画布。这次,画布的原始点仍位于屏幕左上角,如浅蓝色区域的下方:

  这两种方法和哪一种更好?仍然有什么区别?除了现场的优势和缺点之外,还要谈论纸上的士兵。两者有自己的利益和自己的缺陷。如果转换进行了转换,那么所有下一张图将是基于转型的;如果处理过,它将不会影响。

  此外,还有一个非常重要的注意点。如果处理过,其真实位置将更改。转换的真实位置不变。有一种检查点是否在路径内的方法。例如,下面的红点通过翻译实现。

  目前,可以看出,该点仍在路径下,这表明它仅在绘制时在视觉上移动,并且它本身仍位于红色虚线中显示的区域。在这种情况下,如果路径需要检查,需要其他操作。有些人可能会说,不仅仅是减少,减或减法,是否简单地计算出来,这并不麻烦,但这只是翻译。如果它是微光,旋转,倾斜的切割等,您还有吗?

  3.路径转换实际上仅移动前路,并且并不能真正使用转换。但是,通过计算,某些方案将非常麻烦,并且路径的转换将非常实用。例如,旋转需要是旋转,转换沿轴显示如下,这意味着在水平面上旋转。默认情况下,它基于屏幕的左上角。

  因此,如何指定一个要更改中心的点?在转换中,通过翻译可以更改转换中心。例如,在左下角的左上角的红色虚线直径传递以形成以下黑线路径。

  目前,只要根据转换进行转换,这在上面的红点中显示了,如下图所示。转换效应的叠加本质上是两个矩阵的乘法,这是通过方法实现。注意此方法没有返回值,它将更改值。

  在转换中,我们可以重叠多个转换,例如基于下面的旋转,然后是过度叠加的转换器。此转换中心仍然是一个红点,也就是说,在转换中,可以用来通过它来修改中心转型。

  然后考虑一个问题,如何将任何点用作转换中心,例如将点作为转换中心进行旋转和缩放操作。想法的实施也非常简单。定义两个偏移矩阵。在旋转和缩放之前,叠加以使转换中心变为末端,为了不影响结果,它可以通过矩阵采用。

  4.路径变换和命中路径的转换是自身的真实操作。通过该方法,判断点位于路径内。该点相对于组件的左上角,即通过手势事件,它可以轻松检查触点是否在路径内。例如,下面的效果,在该区域中,路径厚橙色,请参阅代码以获取详细信息:[Extra_03_Path/10]

  当检查时需要复杂的点计算,而不是通过转换,而是通过转换。这是两者之间的最大差异。此外,这一变化基本上是实现的。上面提到的叠加功能也使用。

  最后,只需谈论两种方法之间的区别。从源代码可以看到它可以通过实现该函数来实现的源代码,但是它将被克隆并操作新对象。换句话说,此方法将返回新对象,不会影响呼叫者的内部数据。

  该方法如下所示:它基于矩阵乘法来修改自己的数据。

  因此,如果需要在后续使用中使用呼叫者,则可以返回新的呼叫者。如果您不需要使用新的呼叫者,则可以通过方法直接修改自己的数据。了解其原理后,它不会感到困惑。

  就是这样,谢谢您的观看?

  原始:https://juejin.cn/post/7097789306302890020