我在我的 flutter 中添加了一个 3-d 模型。让我向您介绍一些有关我的应用程序的背景信息。我有一个足部护理应用程序,用户可以通过敲击应用程序中的 3D 足部模型来精确定位他/她感到疼痛的位置,该点将被存储并发送给医生以诊断我正在使用的
model_viewer_plus
用于显示模型的包,但我不知道如何在应用程序中实现点击和获取点参考功能。这是我的应用程序的屏幕截图
到目前为止,我已经尝试过这段代码,但这对我没有帮助。
ModelViewer(
src: 'assets/models/feet.glb',
alt: 'A 3D model of an astronaut',
id: "feet",
ar: true,
disableZoom: true,
cameraControls: true,
onWebViewCreated: (controller) {
controller.addJavaScriptChannel(
"onModelClick",
onMessageReceived: (message) {
log("Tapped Position: ${message.message}");
setState(() {
tappedPosition = message.message;
});
},
);
controller.addJavaScriptChannel(
"onClick",
onMessageReceived: (message) {
log("Tapped Position: ${message.message}");
setState(() {
tappedPosition = message.message;
});
},
);
controller.runJavaScriptReturningResult('''
const modelViewer = document.getElementById('feet');
modelViewer.addEventListener('click', (event) => {
const intersection = modelViewer.positionAndNormalFromPoint(event.clientX, event.clientY);
if (intersection) {
onModelClick.postMessage(JSON.stringify(intersection));
}
Print.postMessage('Hello from Dart');
});
''');
controller.runJavaScript('''
const modelViewer = document.querySelector('model-viewer');
modelViewer.addEventListener('click', (event) => {
const intersection = modelViewer.positionAndNormalFromPoint(event.clientX, event.clientY);
if (intersection) {
onModelClick.postMessage(JSON.stringify(intersection));
}
});
''');
},
)
怎么做你能帮我吗 谢谢
我也有同样的疑问和问题。你解决了吗?将非常感谢您的回复和帮助