Animation 利用陀螺仪/加速器模拟颤振水平

Animation 利用陀螺仪/加速器模拟颤振水平,animation,flutter,dart,gravity,gyroscope,Animation,Flutter,Dart,Gravity,Gyroscope,我对flatter还比较陌生,我正在尝试创建一个小部件,其背景充当一个级别(类似于iOS Compass应用程序,或类似于project中的背景)。我添加了AeyriumSensor包,因此我可以访问设备的俯仰和滚动,但是我不确定如何开始创建这样一个小部件来相应地工作,可能使用Transform小部件 任何帮助都将不胜感激,谢谢 编辑:我取得了一些进步;我现在使用四个顶点定义形状: p1 = [0.0, h] p2 = [w, h] p3 = [w, fluidHeight * angle +

我对flatter还比较陌生,我正在尝试创建一个小部件,其背景充当一个级别(类似于iOS Compass应用程序,或类似于project中的背景)。我添加了AeyriumSensor包,因此我可以访问设备的俯仰和滚动,但是我不确定如何开始创建这样一个小部件来相应地工作,可能使用
Transform
小部件

任何帮助都将不胜感激,谢谢

编辑:我取得了一些进步;我现在使用四个顶点定义形状:

p1 = [0.0, h]
p2 = [w, h]
p3 = [w, fluidHeight * angle + fluidHeight]
p4 = [0.0, -1 * fluidHeight * angle + fluidHeight]

w := deviceSize.width
h := deviceSize.height
fluidHeight = percentFilled * h

这在某种程度上是可行的,但只能在50%时准确地工作,当<50%时形状的倾斜移动太剧烈,当>50%时太微妙,因此我不太确定如何调整方程式以适应这一点。

aeyrium_传感器包在其github上有一个示例项目。你应该看看这些想法。@Abion47示例项目很琐碎;它只是简单地打印了俯仰和翻滚,我可以很容易地完成。俯仰和翻滚是创建关卡应用程序所需的全部内容。如果您询问如何渲染对象,可以使用
变换
,或者
堆栈
定位
,或者甚至可以使用
自定义画师
实现滚动您自己的小部件类型。有很多方法可以做到这一点,但客观上没有一种方法是最好的。做一些研究,用你最喜欢的方法提出你自己的解决方案。@Abion47是的,我在问如何渲染这样的对象。我应该如何开始转换(即,我应该使用滚动和俯仰进行哪些方程式和转换?)我不确定如何找到这方面的任何资源没有人可以直接为你演示如何进行转换,这是一个问答网站上对一群志愿者的一个大要求。俯仰和滚动实际上直接转换为标高气泡的X偏移和Y偏移,这基本上就是您需要知道的全部内容。如果你想的话,可以加入一些trig,但它甚至可能不是必需的。具体到什么程度取决于用户界面的设置方式,以及离计划渲染的级别有多远。这不是一个“给我看一个关于如何做的教程”的事情。这是一种“做它,然后微调它,直到它按照你想要的方式工作”之类的事情。