From b5d72ba98fbc93c6604c44cabb11a06c9ce2ab70 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 23 四月 2024 13:50:05 +0800
Subject: [PATCH] #

---
 src/assets/data/agv.js |   84 ++++++++++++++++++++++++++++++++++++------
 src/components/agv.jsx |   29 ++++++++++++--
 2 files changed, 96 insertions(+), 17 deletions(-)

diff --git a/src/assets/data/agv.js b/src/assets/data/agv.js
index 6e3c479..76c06ed 100644
--- a/src/assets/data/agv.js
+++ b/src/assets/data/agv.js
@@ -5,7 +5,7 @@
             position: [0, 0, 0],
             theta: 0,
             height: 0,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 0,
             trayList: [],
             hasBox: false
@@ -17,7 +17,7 @@
             position: [100, 0, 0],
             theta: 0,
             height: 0,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 0,
             trayList: [],
             hasBox: false
@@ -27,9 +27,9 @@
         {
             no: 1,
             position: [100, 0, 0],
-            theta: 270,
+            theta: 90,
             height: 0,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 0,
             trayList: [],
             hasBox: false
@@ -41,7 +41,7 @@
             position: [100, 0, 200],
             theta: 90,
             height: 100,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 0,
             trayList: [],
             hasBox: false
@@ -53,7 +53,7 @@
             position: [100, 0, 300],
             theta: 90,
             height: 150,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 0,
             trayList: [],
             hasBox: false
@@ -65,7 +65,7 @@
             position: [100, 0, 400],
             theta: 90,
             height: 200,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 0,
             trayList: [],
             hasBox: false
@@ -77,7 +77,7 @@
             position: [100, 0, 400],
             theta: 180,
             height: 100,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 0,
             trayList: [],
             hasBox: false
@@ -89,7 +89,7 @@
             position: [100, 0, 400],
             theta: 180,
             height: 100,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 40,
             trayList: [],
             hasBox: false
@@ -101,7 +101,7 @@
             position: [100, 0, 400],
             theta: 180,
             height: 100,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 40,
             trayList: [],
             hasBox: true
@@ -113,7 +113,7 @@
             position: [100, 0, 400],
             theta: 180,
             height: 100,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 0,
             trayList: [],
             hasBox: true
@@ -125,10 +125,70 @@
             position: [100, 0, 400],
             theta: 180,
             height: 0,
-            loaderTheta: 180,
+            loaderTheta: 0,
             forkLength: 0,
             trayList: [],
             hasBox: true
         }
     ],
+    [
+        {
+            no: 1,
+            position: [100, 0, 400],
+            theta: 180,
+            height: 0,
+            loaderTheta: 270,
+            forkLength: 0,
+            trayList: [],
+            hasBox: true
+        }
+    ],
+    [
+        {
+            no: 1,
+            position: [100, 0, 400],
+            theta: 180,
+            height: 0,
+            loaderTheta: 270,
+            forkLength: 40,
+            trayList: [],
+            hasBox: true
+        }
+    ],
+    [
+        {
+            no: 1,
+            position: [100, 0, 400],
+            theta: 180,
+            height: 0,
+            loaderTheta: 270,
+            forkLength: 40,
+            trayList: [],
+            hasBox: false
+        }
+    ],
+    [
+        {
+            no: 1,
+            position: [100, 0, 400],
+            theta: 180,
+            height: 0,
+            loaderTheta: 270,
+            forkLength: 0,
+            trayList: [],
+            hasBox: false
+        }
+    ],
+    [
+        {
+            no: 1,
+            position: [100, 0, 400],
+            theta: 180,
+            height: 0,
+            loaderTheta: 0,
+            forkLength: 0,
+            trayList: [],
+            hasBox: false
+        }
+    ],
 ]
\ No newline at end of file
diff --git a/src/components/agv.jsx b/src/components/agv.jsx
index dfd5ea8..31e88be 100644
--- a/src/components/agv.jsx
+++ b/src/components/agv.jsx
@@ -13,6 +13,7 @@
     const [groupPos, setGroupPos] = useState({ x: 0, y: 0, z: 0 });
     const [groupTheta, setGroupTheta] = useState(0);
     const [loaderHeight, setLoaderHeight] = useState(0);
+    const [integrateTheta, setIntegrateTheta] = useState(0);
     const [forkDis, setForkDis] = useState(0);
 
     useEffect(() => {
@@ -64,6 +65,22 @@
                 }).start();
         }
 
+        // loader theta
+        if (integrateTheta !== loaderTheta) {
+            console.log(integrateTheta, loaderTheta);
+            const minTheta = Common.minDiffTheta(integrateTheta, loaderTheta);
+            console.log(minTheta);
+            new TWEEN.Tween({ value: integrateTheta })
+                .to({ value: minTheta }, INTERVAL_TIME)
+                .easing(TWEEN.Easing.Linear.None)
+                .onUpdate((e) => {
+                    setIntegrateTheta(e.value)
+                })
+                .onComplete((e) => {
+                    setIntegrateTheta(e.value)
+                }).start();
+        }
+
         // fork lenght
         if (forkDis !== forkLength) {
             new TWEEN.Tween({ value: forkDis })
@@ -74,7 +91,6 @@
                 })
                 .onComplete((e) => {
                     setForkDis(e.value)
-                    console.log(e.value);
                 }).start();
         }
 
@@ -118,11 +134,14 @@
                 position={[groupPos.x, groupPos.y, groupPos.z]}
             >
                 <primitive object={bodyModel} castShadow />
-                <group position-y={loaderHeight}>
-                    <primitive object={loaderModel} castShadow position={[0, 30, 0]} />
+                <group
+                    position-y={loaderHeight}
+                    rotation-y={Common.rotationParseNum(integrateTheta)}
+                >
+                    <primitive object={loaderModel} castShadow position={[0, 20, 0]} />
                     <group position-z={forkDis}>
-                        <primitive object={forkModel} castShadow position={[0, 35, 0]} />
-                        {hasBox && <Box position={[0, 34, 0]} />}
+                        <primitive object={forkModel} castShadow position={[0, 25, 0]} />
+                        {hasBox && <Box position={[0, 24, 0]} />}
                     </group>
                 </group>
             </group>

--
Gitblit v1.9.1