diff --git a/.vs/Hexapod/v15/Server/sqlite3/storage.ide b/.vs/Hexapod/v15/Server/sqlite3/storage.ide index 942f759..8c146b5 100644 Binary files a/.vs/Hexapod/v15/Server/sqlite3/storage.ide and b/.vs/Hexapod/v15/Server/sqlite3/storage.ide differ diff --git a/.vs/Hexapod/v15/Server/sqlite3/storage.ide-shm b/.vs/Hexapod/v15/Server/sqlite3/storage.ide-shm index c9e7657..0aba539 100644 Binary files a/.vs/Hexapod/v15/Server/sqlite3/storage.ide-shm and b/.vs/Hexapod/v15/Server/sqlite3/storage.ide-shm differ diff --git a/.vs/Hexapod/v15/Server/sqlite3/storage.ide-wal b/.vs/Hexapod/v15/Server/sqlite3/storage.ide-wal index 40275e0..0243e9d 100644 Binary files a/.vs/Hexapod/v15/Server/sqlite3/storage.ide-wal and b/.vs/Hexapod/v15/Server/sqlite3/storage.ide-wal differ diff --git a/Assets/Foot.cs b/Assets/Foot.cs index 4f1375f..ca37191 100644 --- a/Assets/Foot.cs +++ b/Assets/Foot.cs @@ -127,36 +127,41 @@ public class Foot : Component Y += translateY; Z += translateZ; - Y = Y * (invert ? -1 : 1); - X = X * (invert ? -1 : -1); - Z = Z * (invert ? -1 : -1); - /*RotateX(); RotateY(); RotateZ();*/ - - rotationY = rotationY * (invert ? 1 : 1); - + // Z and X is working. Y has problems when combined with others. - Vector3 v = new Vector3((float)Z, (float)Y, (float)X); - v = Quaternion.Euler((float)rotationX, (float)rotationY, (float)rotationZ) * v; - Z = v.x; + Vector3 v = new Vector3((float)X, (float)Y, (float)Z); + v = Quaternion.Euler((float)0, (float)rotationY, (float)0) * v; + v = Quaternion.Euler((float)rotationX, (float)0, (float)0) * v; + v = Quaternion.Euler((float)0, (float)0, (float)rotationZ) * v; + X = v.x; Y = v.y; - X = v.z; - - Y = Y * (invert ? -1 : 1); - X = X * (invert ? -1 : -1); - Z = Z * (invert ? -1 : -1); - + Z = v.z; + X -= translateX; Y -= translateY; Z -= translateZ; + // translate to my stupid formula coordinates. + double tx = X; + double ty = Y; + double tz = Z; + X = tz * (invert ? -1 : 1); + Y = ty * -1; + Z = tx * -1; + + // run IK O1 = (90 - FO1()); O2 = T1(); O3 = 180 - T3(); - Y = Y * -1; - pos = new Vector3((float)Z, (float)Y, (float)X); + // translate to my stupid formula coordinates. + X = tx; + Y = ty; + Z = tz; + + pos = new Vector3((float)X * (invert ? -1 : 1), (float)Y, (float)Z * (invert ? -1 : 1)); } } diff --git a/Assets/Leg.cs b/Assets/Leg.cs index 031c82f..58393b3 100644 --- a/Assets/Leg.cs +++ b/Assets/Leg.cs @@ -34,13 +34,12 @@ public class Leg : MonoBehaviour { void Update() { foot.X = point.x; - foot.Y = point.y * -1; - //foot.Z = point.z * (invert ? -1 : 1); - foot.Z = point.z * (invert ? 1 : -1); + foot.Y = point.y; + foot.Z = point.z; foot.rotationX = rotation.x; - foot.rotationY = rotation.y * (invert ? -1 : 1); - foot.rotationZ = rotation.z * (invert ? -1 : 1); + foot.rotationY = rotation.y; + foot.rotationZ = rotation.z; foot.translateX = translateX; foot.translateY = translateY; @@ -67,8 +66,6 @@ public class Leg : MonoBehaviour { Hip2.transform.localRotation = Quaternion.Euler((float)a2, 0, 0); Knie.transform.localRotation = Quaternion.Euler((float)a3, 0, 0); - pos = foot.pos; - pos.x = pos.x * (invert ? 1 : -1); - pointShouldBe.transform.localPosition = pos; + pointShouldBe.transform.localPosition = foot.pos; } } diff --git a/Assets/Main.unity b/Assets/Main.unity index 407dc57..1e42c48 100644 --- a/Assets/Main.unity +++ b/Assets/Main.unity @@ -192,7 +192,7 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: point.z - value: 1 + value: -10 objectReference: {fileID: 0} - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} @@ -202,12 +202,21 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: point.x - value: 10 + value: -1 objectReference: {fileID: 0} - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: translateZ - value: 5 + value: -5 + objectReference: {fileID: 0} + - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, + type: 2} + propertyPath: translateX + value: -5 + objectReference: {fileID: 0} + - target: {fileID: 1281778670178016, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} + propertyPath: m_IsActive + value: 1 objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} @@ -358,7 +367,7 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: point.z - value: -1 + value: 10 objectReference: {fileID: 0} - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} @@ -368,12 +377,16 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: point.x - value: 10 + value: 1 objectReference: {fileID: 0} - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: translateZ - value: -5 + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 1281778670178016, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} + propertyPath: m_IsActive + value: 1 objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} @@ -442,7 +455,7 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: point.x - value: 10 + value: 0 objectReference: {fileID: 0} - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} @@ -452,8 +465,22 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: translateZ + value: -5 + objectReference: {fileID: 0} + - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, + type: 2} + propertyPath: translateX value: 0 objectReference: {fileID: 0} + - target: {fileID: 1281778670178016, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, + type: 2} + propertyPath: point.z + value: -10 + objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} m_IsPrefabParent: 0 @@ -533,7 +560,7 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: point.z - value: -1 + value: -10 objectReference: {fileID: 0} - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} @@ -543,13 +570,22 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: point.x - value: 10 + value: 1 objectReference: {fileID: 0} - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: translateZ value: -5 objectReference: {fileID: 0} + - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, + type: 2} + propertyPath: translateX + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 1281778670178016, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} m_IsPrefabParent: 0 @@ -792,13 +828,27 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: point.x - value: 10 + value: -1 objectReference: {fileID: 0} - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: point.y value: -10 objectReference: {fileID: 0} + - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, + type: 2} + propertyPath: translateX + value: -5 + objectReference: {fileID: 0} + - target: {fileID: 1281778670178016, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, + type: 2} + propertyPath: point.z + value: 10 + objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} m_IsPrefabParent: 0 @@ -852,7 +902,7 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: point.x - value: 10 + value: 0 objectReference: {fileID: 0} - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} @@ -862,8 +912,22 @@ Prefab: - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} propertyPath: translateZ + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, + type: 2} + propertyPath: translateX value: 0 objectReference: {fileID: 0} + - target: {fileID: 1281778670178016, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 114741880654588862, guid: c2064a01ffb68a84fa55bd109ccf70a4, + type: 2} + propertyPath: point.z + value: 10 + objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: c2064a01ffb68a84fa55bd109ccf70a4, type: 2} m_IsPrefabParent: 0 diff --git a/Assets/RotationControl.cs b/Assets/RotationControl.cs index 1e7a1b3..928f774 100644 --- a/Assets/RotationControl.cs +++ b/Assets/RotationControl.cs @@ -25,34 +25,34 @@ public class RotationControl : MonoBehaviour // Update is called once per frame void Update() { - /*if (!dir2 && rotation.x < max) + if (!dir2 && rotation.x < max) rotation.x += speed2; else if (!dir2) dir2 = !dir2; else if (dir2 && rotation.x > min) rotation.x -= speed2; else if (dir2) - dir2 = !dir2;*/ + dir2 = !dir2; - /*if (!dir3 && rotation.y < max) + if (!dir3 && rotation.y < max) rotation.y += speed3; else if (!dir3) dir3 = !dir3; else if (dir3 && rotation.y > min) rotation.y -= speed3; else if (dir3) - dir3 = !dir3;*/ + dir3 = !dir3; - /*if (!dir && rotation.z < max) + if (!dir && rotation.z < max) rotation.z += speed; else if (!dir) dir = !dir; else if (dir && rotation.z > min) rotation.z -= speed; else if (dir) - dir = !dir;*/ + dir = !dir; - body.transform.eulerAngles = new Vector3(rotation.x*-1, rotation.y, rotation.z); + body.transform.eulerAngles = new Vector3(rotation.x*-1, rotation.y*-1, rotation.z*-1); for (int index = 0; index < rotation2.Count; ++index) {