คำถามติดแท็ก vector

แนวคิดทางคณิตศาสตร์ที่สามารถใช้ในการแสดงตำแหน่งทิศทางหรือความเร็วและสามารถลดความซับซ้อนของปัญหาเชิงพื้นที่ได้

2
ฉันจะใช้ผลิตภัณฑ์ดอทเพื่อรับมุมระหว่างเวกเตอร์สองตัวได้อย่างไร
ฉันกำลังเรียนรู้ที่จะใช้เวกเตอร์ปกติในเกมของฉัน ฉันเรียนรู้ว่าเพื่อทราบมุมระหว่างเวกเตอร์สองตัวฉันสามารถใช้ผลิตภัณฑ์ดอท สิ่งนี้ทำให้ฉันมีค่าระหว่าง -1 และ 1 ที่ 1 หมายถึงเวกเตอร์นั้นขนานกันและหันไปในทิศทางเดียวกัน (มุมคือ 180 องศา) -1 หมายถึงพวกมันขนานและหันหน้าไปทางทิศทางตรงกันข้าม (ยังคง 180 องศา) 0 หมายถึงมุมระหว่างพวกเขาคือ 90 องศา ฉันอยากรู้วิธีแปลงผลคูณดอทของเวกเตอร์สองตัวเป็นมุมจริงเป็นองศา ตัวอย่างเช่นหากผลิตภัณฑ์ดอทของเวกเตอร์สองตัวคือ0.28อะไรมุมที่สอดคล้องกันคือระหว่าง 0 ถึง 360 องศา

2
ฉันจะสอดแทรกเชิงเส้นตรงระหว่างเวกเตอร์สองตัวได้อย่างไร
ฉันมีเวกเตอร์ความเร็วสูงที่ลูกค้าของฉันอยู่และกำลังจะไปและฉันมีเวกเตอร์เดียวกันที่มาจากเซิร์ฟเวอร์บอกว่าลูกค้าควรจะอยู่ที่ไหน บางครั้งมันก็แตกต่างกันเล็กน้อยดังนั้นฉันต้องการแก้ไขระหว่างตำแหน่งปัจจุบันของฉันกับตำแหน่งที่ถูกต้องของเซิร์ฟเวอร์ ลูกศรสีดำเป็นเวกเตอร์ความเร็วของลูกค้าลูกศรสีแดงเป็นเวกเตอร์ความเร็วของลูกค้าบนเซิร์ฟเวอร์และลูกศรสีน้ำเงินเป็นอันที่ฉันต้องการคำนวณและสอดแทรก ฉันจะคำนวณเวกเตอร์สีน้ำเงินได้อย่างไร จากนั้นฉันจะแก้ไขเชิงเส้นตรงระหว่างพวกเขาได้อย่างไร

1
ฉันจะบอกได้อย่างไรว่าศัตรูของฉันเห็นผู้เล่นของฉันหรือไม่
ให้ผู้เล่นและศัตรูที่อยู่ในตำแหน่งและให้เวกเตอร์ทิศทางของแต่ละคนฉันจะบอกได้อย่างไรว่าใครสามารถ "เห็น" อีกฝ่ายได้? กล่าวอีกนัยหนึ่งฉันจะทดสอบว่าตำแหน่งหนึ่งที่มีทิศทางอยู่ด้านหน้าหรือด้านหลังตำแหน่งอื่นพร้อมทิศทางได้อย่างไร สำหรับจุดประสงค์ของฉัน 'ด้านหน้า' หมายถึงด้านหน้าโดยตรงหรือ 90 องศาทั้งสองด้าน
15 mathematics  ai  vector 

2
การปรับสมดุลแบบไดนามิกของยานอวกาศ
เรืออวกาศในเกมของฉันมีจุดประสงค์เพื่อให้ผู้เล่นสร้างขึ้นโดยมีแรงขับดันติดมาทุกที่ทุกเวลาด้วยการหมุน ขณะนี้ฉันมีรหัสสกปรกเพื่อหมุนเรือไปยังมุมที่กำหนด (เร่งความเร็วและลดความเร็ว) นี่คือตัวอย่างของเรือที่สมมาตรหันหน้าไปทางที่จุดสีแดงชี้บอกให้หมุนไปทางซ้าย อย่างไรก็ตามอย่างที่คุณคิดขึ้นอยู่กับตำแหน่งที่ผู้เล่นวางเครื่องขับดันบางครั้งกองกำลังเชิงเส้นที่ไม่พึงประสงค์กำลังส่งผลกระทบต่อเรือ ในกรณีนี้เรือเริ่มเคลื่อนที่ไปข้างหน้า ฉันอธิบายอย่างละเอียดว่ามันเป็นไปได้หรือไม่ที่จะหาแรงผลักสูงสุดที่ Thruster สามารถใช้เพื่อทำให้ไม่มีความเร็วเชิงเส้น (ในกรณีข้างต้นที่จะไม่มีใครเพราะไม่มีอะไรที่จะตอบโต้กองกำลังจากขับดันด้านหลังและคนหน้าฆ่าคนอื่น) สิ่งที่ฉันได้ทำมาในตอนนี้คือสูตรในการกำหนด "ประสิทธิภาพการเลี้ยว" เช่นการหมุนเกิดขึ้นเมื่อเทียบกับการเคลื่อนที่เชิงเส้น a - position vector to thruster a b - ตำแหน่งเวกเตอร์ไปยัง thruster b v1 - แรงจาก thruster a v2 - แรงจาก thruster b efficiencyDelta = a.cross (v1) / | v1 | - (a.cross (v1) + b.cross (v2)) / …

2
การยิงกระสุนออกจากปืนแทนที่จะเป็นกล้อง แต่ให้ความแม่นยำกับเรติเคิล
ฉันทำงานเกมคนแรกและฉันพบปัญหา ในเกมของฉันมีปืนของผู้เล่นถูกเรนเดอร์รวมถึงมีเส้นเล็งอยู่ตรงกลางของหน้าจอ - ดังนี้: ก่อนอื่นลองนึกภาพว่าไม่มีการสร้างโมเดลปืน จากนั้นการยิงกระสุนเป็นเรื่องง่าย - คุณเพียงวางไข่กระสุนที่ตำแหน่ง "ตา" ของผู้เล่นแล้วใช้ตรีโกณฯ เพื่อคำนวณความเร็วตามทิศทางที่ผู้เล่นมอง แต่ตอนนี้เมื่อเราเพิ่มโมเดลปืน ... เราไม่สามารถวางลูกกระสุนที่ดวงตาของผู้เล่นได้เราจะต้องวางไข่ที่ปลายปืน (ใช่ไหม) ดังนั้นคุณทำเช่นนั้น แต่แล้ว ... คุณจะย้ายกระสุนในวิธีที่มันจะกระทบทุกที่เส้นเล็งถูกชี้ไปได้อย่างไร โปรดทราบว่าสัญลักษณ์แสดงหัวข้อย่อยในเกมของฉัน (จริง ๆ แล้วเป็นจรวดในกรณีนี้) จะเคลื่อนที่ช้าพอที่จะเห็นการเคลื่อนไหวดังนั้นการแก้ปัญหาบางอย่างที่มักจะทำงานหากกระสุนเร็วเกินไปที่จะสังเกตเห็นจะไม่ทำงาน . ตัวอย่างเช่นหากคุณไม่ได้วางไข่ดังนั้นดูเหมือนว่ามันจะออกมาจากปลายปืนผู้เล่นจะสังเกตเห็นได้อย่างแน่นอน

5
ฉันสามารถลดความไม่เท่าเทียมกันของ "ระยะทาง (p1, p2) <distance (p1, p3) ได้หรือไม่?"
ฉันกำลังทำงานกับลอจิกแบบเวกเตอร์เพื่อถามว่า: ฉันสามารถประหยัดเวลาตัวประมวลผลโดยทำให้ความไม่เท่าเทียมนี้ลดความซับซ้อนลง: distance(vector1, vector2) &lt; distance(vector1, vector3) ฉันเห็นว่าvector1มีการทำซ้ำในทั้งสองกรณี
14 vector 

2
การเคลื่อนไหวนั้นขึ้นอยู่กับอัตราเฟรมแม้จะใช้ Time.deltaTime
ฉันมีรหัสต่อไปนี้เพื่อคำนวณการแปลที่จำเป็นในการย้ายวัตถุเกมใน Unity ซึ่งเรียกว่าLateUpdateมา จากสิ่งที่ฉันเข้าใจการใช้งานของฉันTime.deltaTimeควรจะทำให้เป็นอิสระแปลสุดท้ายอัตราเฟรม (โปรดทราบCollisionDetection.Move()เป็นเพียงการแสดง raycasts) public IMovementModel Move(IMovementModel model) { this.model = model; targetSpeed = (model.HorizontalInput + model.VerticalInput) * model.Speed; model.CurrentSpeed = accelerateSpeed(model.CurrentSpeed, targetSpeed, model.Accel); if (model.IsJumping) { model.AmountToMove = new Vector3(model.AmountToMove.x, model.AmountToMove.y); } else if (CollisionDetection.OnGround) { model.AmountToMove = new Vector3(model.AmountToMove.x, 0); } model.FlipAnim = flipAnimation(targetSpeed); // If …

2
ใน Unity เหตุใดจึงเพิ่ม Vector2 และ Vector3 ที่ไม่ชัดเจน แต่การกำหนดไม่ใช่
ให้เวกเตอร์สองตัวต่อไปนี้: Vector3 v3 = Vector3.one; Vector2 v2 = Vector2.one; บรรทัดนี้ไม่ชัดเจน: v3 += v2; // Unity reports dimension ambiguity ในขณะที่การมอบหมายนี้ไม่ได้: v3 = v2; // Unity assigns despite different dimensions ทำไมนี้
11 c#  unity  2d  3d  vector 


1
ลดขนาดโครงตาข่าย 4D จินตนาการลงบนหน้าจอ
เป็นการออกกำลังกายทางจิตฉันพยายามจินตนาการการฉายตาข่าย 4 มิติบนหน้าจอ (2D) โดยพลการ ฉันเดาว่าสามเหลี่ยม 4D เดียวจะยังคงมีเพียง 3 คะแนน แต่ 3 คะแนนนั้นจะถูกกำหนดโดยคอลัมน์ที่มี 4 มิติ มันจะเหมาะสมกว่าหรือไม่ที่จะกำหนดเมทริกซ์การฉายภาพเพื่อแมปพื้นที่ 4D ไปยังพื้นที่ 3D ก่อนจากนั้นให้ OpenGL ทำการฉายภาพของตัวเองจากข้อมูลนั้นไปยังพื้นที่ 2D หรือจะเป็นการดีที่สุดถ้าคุณวางแผนที่จะฉายจาก 4 เป็น 2 โดยตรง ขอบคุณมาก.

2
วิธีการคำนวณเวกเตอร์ของการสกัดกั้น?
ให้เป็นพื้นที่สองมิติและยานอวกาศที่เป็นมิตร 1 ยืนนิ่งศัตรูคนหนึ่งกำลังเคลื่อนย้ายไม่ได้โดยตรงไปยังเรือที่เป็นมิตรกับตำแหน่งที่รู้จักจริงความเร็วและทิศทาง เรือที่เป็นมิตรต้องการเข้าสู่ระยะการยิงเพื่อต่อสู้กับศัตรู อันที่จริงฉันกำลังตั้งค่าเวกเตอร์โดยตรงไปยังตำแหน่งจริงที่เคลื่อนย้ายเรือและคำนวณใหม่ทุกเฟรมทำให้เกิดเส้นทางบิน "รอบ" บางประเภท สิ่งที่ฉันต้องการคือการตั้งค่าเส้นทางตรงและตรงไปยังตำแหน่งที่ศัตรูจะ (เมื่อ) จะมีเมื่อถึงระยะการยิงจะถึงสมมติว่าศัตรูจะไม่เปลี่ยนเส้นทางจนกว่าจะถึงวันนั้น เป็นการใช้งานครั้งแรกและ "ง่าย" มันจะเพียงพอหากเราคิดว่าเพื่อนสามารถเพิ่มความเร็วจาก 0 เป็นสูงสุดในเวลาไม่นาน การปฏิบัติที่ผ่านมาแล้วจะเป็นสิ่งที่พิจารณาความสามารถในการเร่งความเร็วของเพื่อนและรู้ว่าการสกัดกั้นเป็นไปไม่ได้เพราะความเร็ว มันควรจะใช้ได้กับทุกความเร็วเริ่มต้น ข้อดีก็คือถ้ามันคิดว่าการเบรก (การต่อสู้ที่ lightspeed นั้นไม่มีประสิทธิภาพในการใช้พลังงานของจักรวาล)

4
การทำแผนที่ปกติใช้งานได้จริงอย่างไร
ฉันพยายามเข้าใจแนวคิดของการทำแผนที่ปกติ แต่ฉันสับสนกับบางสิ่ง ในระยะสั้นฉันไม่แน่ใจว่าแผนที่ปกติขึ้นอยู่กับจุดชมวิวหรือไม่ (เช่นคุณจะได้รับแผนที่ปกติที่แตกต่างจากวัตถุเดียวกันเมื่อคุณหมุนรอบ ๆ หรือไม่) ประการที่สองฉันไม่เข้าใจว่าทำไมสีฟ้าจึงเป็นสีเด่นในแผนที่ปกติ ฉันคิดอย่างไรเกี่ยวกับบรรทัดฐานและความสัมพันธ์ของพวกเขากับสี RGB มีดังนี้ หน่วยทรงกลมแสดงถึงหน่วยปกติใด ๆ ที่เป็นไปได้ - กล่าวอีกนัยหนึ่งส่วนประกอบ X, Y และ Z ของเวกเตอร์ปกติหน่วยตั้งแต่ -1 ถึง 1 ส่วนประกอบของสี RGB ทั้งหมดอยู่ระหว่าง 0 ถึง 255 ดังนั้นจึงเหมาะสม ไปที่แผนที่ -1 (องค์ประกอบปกติ) ถึง 0 (องค์ประกอบสี), 0 ถึง 127 หรือ 128 และ 1 ถึง 255 ค่าใด ๆ ที่อยู่ระหว่างนั้นจะถูกประมาณเชิงเส้น การนำการแมปนี้ไปใช้กับบรรทัดฐานของวัตถุ 3 …

1
ฉันจะได้เวกเตอร์ปกติสำหรับระนาบจากเซตของจุดยอดได้อย่างไร?
ฉันกำลังทำงานในโครงการเล็ก ๆ ของ HLSL / C ++ เพื่อทำงานกราฟิกของฉันและฉันไม่แน่ใจว่าจะได้รับเวกเตอร์หันหน้าจากรูปหลายเหลี่ยมยอด ฉันไม่สามารถหาสูตรได้ ตำแหน่งคือ P1, P2, P3 ลองเรียกพวกเขาว่าคลาส VertexPoint ด้วย P1.x, P1.y, P1.z เป็นตัวอย่าง?

5
ทำไมฉันไม่สามารถใช้โอเปอเรเตอร์ '> =' กับ Vector3s ได้
ฉันพยายามที่จะได้รับรูปสี่เหลี่ยมผืนผ้าย้ายไปมาระหว่างสองตำแหน่งที่ผมพูดถึงและ_positionA ทั้งสองประเภท_positionB Vector3สี่เหลี่ยมผืนผ้าเคลื่อนไหวได้ดี อย่างไรก็ตามเมื่อมันมาถึง_positionBมันจะไม่เคลื่อนที่ในทิศทางตรงกันข้ามเหมือนอย่างที่ควร ฉันกลับไปที่โค้ดเพื่อดู ฉันมาถึงข้อสรุปว่าเป็นวัตถุย้ายที่ifงบในรหัสพลาดเฟรมซึ่งในตำแหน่ง rects _positionBเท่ากับ ฉันตัดสินใจที่จะปรับเปลี่ยนรหัสไปในทิศทางที่ตรงกันข้ามถ้าตำแหน่ง rects คือมากกว่าหรือเท่ากับ _positionBรหัสของฉันไม่ยาวเกินไปดังนั้นฉันจะแสดงด้านล่าง: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

2
ฉันจะตรวจสอบได้อย่างไรว่ารูปหลายเหลี่ยมหนึ่งมีอีกรูปแบบหนึ่งอย่างสมบูรณ์?
ฉันมีรูปหลายเหลี่ยม 2 อัน ฉันรู้พิกัดจุดสุดยอดของรูปหลายเหลี่ยมทั้งสอง เป็นวิธีที่ดีที่สุดในการตรวจสอบว่าอย่างใดอย่างหนึ่งอยู่ภายในอื่น ๆ ? ตัวอย่างเช่นอัลกอริทึมควรรับรู้สี่เหลี่ยมคางหมูสีดำด้านล่างว่ามีอยู่:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.