【发布时间】:2020-01-13 18:13:53
【问题描述】:
我有来自 obj 的 3d 点,我希望能够选择一个点,比如 v -0.822220 0.216242 -0.025730 并用容器覆盖它并保存该点。(我有一个车辆 3d obj,我希望能够选择说出司机的车门并保存选择的点(可能是门把手)。
样本点:
v 0.822220 0.216242 -0.025730 v -0.822220 0.216242 -0.025730 v 0.811726 0.220845 0.029668 v -0.811726 0.220845 0.029668 v 0.777874 0.214472 0.075458 v -0.777874 0.214472 0.075458 v 0.724172 0.189587 0.073470 v -0.724172 0.189587 0.073470 v 0.704111 0.180226 0.027508
我的成就
return new GestureDetector(
onTapDown: (TapDownDetails details) => onTapDown(context, details),
child: new Stack(fit: StackFit.expand, children: <Widget>[
Object3D(...),
new Positioned(
child: new Container(color:Colors.red),
left: posx,
top: posy,
)
]),
);
void onTapDown(BuildContext context, TapDownDetails details) {
print('${details.globalPosition}');
final RenderBox box = context.findRenderObject();
final Offset localOffset = box.globalToLocal(details.globalPosition);
setState(() {
posx = localOffset.dx;
posy = localOffset.dy;
});
}
。我建议将点转换为 2d 并使用 2d 点覆盖容器。如何将 3d 点转换为 2d 点?
有更好的方法吗?
我正在使用这个包flutter_3d_obj
【问题讨论】:
标签: flutter dart 3d flutter-layout