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

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

3
เวกเตอร์ปกติ, แทนเจนต์และทวินามคืออะไรและใช้อย่างไร
ฉันต้องการค้นหาข้อมูลต่อไปนี้: พวกเขาคืออะไร ตัวอย่างการใช้งานในการพัฒนาเกม (พื้นที่ที่ใช้) เกี่ยวกับประเภทเวกเตอร์ต่อไปนี้: Normal Tangent Binormal คำอธิบายการพัฒนาเกมอย่างง่ายเป็นศูนย์กลางจะพอเพียง

5
นักแสดงในเกมควรมีความรับผิดชอบในการวาดภาพตนเองหรือไม่?
ฉันยังใหม่ต่อการพัฒนาเกม แต่ไม่ได้เขียนโปรแกรม ฉัน (อีกครั้ง) เล่นกับเกมประเภท Pong โดยใช้canvasองค์ประกอบของ JavaScript ฉันสร้างPaddleวัตถุที่มีคุณสมบัติดังต่อไปนี้ ... width height x y colour ฉันยังมีPongวัตถุที่มีคุณสมบัติเช่น ... width height backgroundColour draw(). draw()วิธีการในปัจจุบันคือการรีเซ็ตcanvasและที่เป็นที่คำถามขึ้นมา ควรPaddleวัตถุมีdraw()วิธีการรับผิดชอบสำหรับการวาดภาพหรือควรdraw()ของPongวัตถุต้องรับผิดชอบสำหรับการวาดภาพของนักแสดง (ฉันคิดว่าเป็นคำที่ถูกต้องโปรดแก้ไขฉันหากฉันไม่ถูกต้อง) ฉันคิดว่ามันจะเป็น advantagous สำหรับPaddleการวาดตัวเองที่ผมยกตัวอย่างวัตถุสองและPlayer Enemyถ้ามันไม่ได้อยู่ในPongของdraw()ฉันจะต้องเขียนรหัสที่คล้ายกันสองครั้ง การปฏิบัติที่ดีที่สุดที่นี่คืออะไร? ขอบคุณ

2
การคำนวณแรงหมุนของสไปรต์ 2D
ฉันสงสัยว่าใครบางคนมีวิธีการคำนวณสถานการณ์ต่อไปนี้อย่างสวยงาม ฉันมีวัตถุของจำนวนสี่เหลี่ยม (n) จำนวนรูปร่างแบบสุ่ม แต่เราจะแกล้งพวกมันเป็นรูปสี่เหลี่ยมผืนผ้าทั้งหมด เรากำลังจัดการกับแรงโน้มถ่วงไม่ดังนั้นพิจารณาวัตถุในอวกาศจากมุมมองจากบนลงล่าง ฉันกำลังใช้แรงกับวัตถุที่ช่องสี่เหลี่ยมเฉพาะ (ดังที่แสดงด้านล่าง) ฉันจะคำนวณมุมการหมุนได้อย่างไรโดยขึ้นอยู่กับแรงที่ใช้กับตำแหน่งที่ใช้งาน หากนำไปใช้ในจัตุรัสกลางมันจะตรงไป ฉันควรจะทำตัวต่อไปอย่างไรเมื่อย้ายจากจุดศูนย์กลาง ฉันจะคำนวณความเร็วในการหมุนได้อย่างไร
35 2d  rotation  physics  vector 

5
ใน 2D ฉันจะหาวัตถุที่ใกล้ที่สุดถึงจุดได้อย่างมีประสิทธิภาพได้อย่างไร
ฉันมีเอ็นจิ้นเกมขนาดใหญ่และฉันต้องการคุณสมบัติในการค้นหาจุดที่ใกล้ที่สุด ฉันสามารถใช้ทฤษฎีบทพีทาโกรัสในการค้นหาแต่ละระยะทางและเลือกหนึ่งขั้นต่ำ แต่นั่นต้องใช้การวนซ้ำทั้งหมด ฉันยังมีระบบการชนกันโดยที่ฉันจะเปลี่ยนวัตถุให้เป็นวัตถุขนาดเล็กบนกริดที่เล็กกว่า (เช่น minimap) และถ้าวัตถุมีอยู่ในกริดสเปซเดียวกันฉันจะตรวจสอบการชนกัน ฉันสามารถทำได้เพียงทำให้ระยะห่างของกริดใหญ่ขึ้นเพื่อตรวจสอบความใกล้ชิด (แทนที่จะตรวจสอบทุก ๆ ออบเจ็กต์) อย่างไรก็ตามมันจะทำการเซ็ตอัพเพิ่มเติมในคลาสฐานของฉัน มันคุ้มหรือไม่ มีบางสิ่งที่มีประสิทธิภาพและแม่นยำฉันสามารถใช้เพื่อตรวจจับวัตถุใดที่อยู่ใกล้ที่สุดโดยอิงจากรายการคะแนนและขนาด
35 c++  2d  algorithm  vector  picking 

6
หากเวกเตอร์ 3D แสดงถึงจุดนั้นจะมีความยาวได้อย่างไร?
ฉันพยายามที่จะเข้าใจเลขคณิตเวกเตอร์ (และโดยเฉพาะการใช้ในเอ็นจิ้น Unity) ฉันไม่สามารถเข้าใจได้ว่าเวกเตอร์มีความยาว (ขนาด) อย่างไรถึงจะเป็นเพียงแค่จุด (ตำแหน่งและทิศทาง) เท่านั้น นั่นหมายความว่าขนาดเป็นเพียงระยะทางจากจุดกำเนิด (0, 0, 0)? หรือว่าฉันขาดอะไรไป?
27 vector  geometry 

3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

5
ฉันจะคำนวณมุมและทิศทางการเลี้ยวที่เหมาะสมระหว่างสองเวกเตอร์ 2D ได้อย่างไร
ฉันกำลังทำงานกับการเคลื่อนไหว AI ที่ไม่มีสิ่งกีดขวางและการเคลื่อนไหวถูก จำกัด ไว้ที่ระนาบ XY ฉันกำลังคำนวณเวกเตอร์สองตัวคือv , ทิศทางหันหน้าของเรือ 1 และwเวกเตอร์ชี้ไปจากตำแหน่งของเรือ 1 ถึงเรือ 2 ฉันกำลังคำนวณมุมระหว่างเวกเตอร์สองตัวนี้โดยใช้สูตร arccos((v · w) / (|v| · |w|)) ปัญหาที่ฉันพบคือการarccosคืนค่าระหว่าง 0 ถึง 180 °เท่านั้น นี่ทำให้เป็นไปไม่ได้ที่จะตัดสินว่าฉันควรเลี้ยวซ้ายหรือขวาเพื่อเผชิญหน้ากับเรือรบลำอื่น มีวิธีที่ดีกว่าในการทำเช่นนี้?
26 2d  vector 

3
ฉันจะหมุนวัตถุโดยอิงจากอ็อฟเซ็ตของวัตถุอื่นได้อย่างไร?
ฉันมีแบบจำลอง 3 มิติของป้อมปืนที่หมุนรอบแกน Y ป้อมปืนนี้มีปืนใหญ่ที่อยู่กึ่งกลางของวัตถุ ฉันต้องการปืนใหญ่ไม่ใช่ป้อมปืนเพื่อเล็งไปที่เป้าหมายที่ระบุ อย่างไรก็ตามฉันสามารถหมุนป้อมปืนได้เท่านั้นและด้วยเหตุนี้ฉันจึงไม่ทราบว่าต้องใช้สมการใดเพื่อบรรลุเป้าหมาย ภาพต่อไปนี้แสดงให้เห็นถึงปัญหาของฉัน: หากฉันมีป้อมปืน "LookAt ()" เป้าหมายเลเซอร์ที่มาจากปืนใหญ่จะพลาดเป้าหมายที่กล่าวไปทั้งหมด ถ้านี่เป็นสถานการณ์จากบนลงล่างอย่างสมบูรณ์และปืนใหญ่ขนานกับป้อมปืนแล้วตรรกะของฉันบอกฉันว่าเป้าหมายปลอมควรอยู่ในตำแหน่งที่เท่ากับเป้าหมายจริงบวกกับออฟเซ็ตที่เท่ากับระหว่าง ป้อมปืนและปืนใหญ่ อย่างไรก็ตามในสถานการณ์จริงของฉันกล้องของฉันมีมุม60ºและปืนใหญ่มีการหมุนเล็กน้อย ภาพต่อไปนี้แสดงให้เห็นถึงสถานการณ์: ฉันไม่แน่ใจอย่างแน่นอนว่าทำไม แต่ถ้าฉันใช้การชดเชยแบบเดียวกันดูเหมือนว่าจะทำงานได้ในขณะที่เล็งไปที่ระยะทางจากป้อมปืน ตรรกะของฉันมีข้อบกพร่องหรือไม่ ฉันขาดพื้นฐานบางอย่างที่นี่หรือไม่? การแก้ไขขั้นสุดท้าย: โซลูชันที่ได้รับจาก @JohnHamilton อัพเดตล่าสุดแก้ไขปัญหานี้ได้อย่างแม่นยำ ตอนนี้ฉันได้ลบรหัสและรูปภาพที่ฉันใช้เพื่อแสดงการใช้งานที่ไม่ถูกต้องของฉัน

3
อะไรคือความแตกต่าง / ซับซ้อน / มีประโยชน์เกี่ยวกับเวกเตอร์
ยกโทษให้ฉันถ้านี่ไม่ใช่คำถามจริง แต่เป็นสิ่งที่ฉันสับสนอย่างแท้จริง ฉันได้ยินผู้พัฒนาเกมคนอื่นพูดถึงการใช้เว็กเตอร์อย่างมีประโยชน์มาก แต่ตลอดจนวิธีที่ทุกคนถูกข่มขู่ด้วยคณิตศาสตร์เวกเตอร์และเวคเตอร์สามารถดูน่ากลัว ฉันไม่เคยมีรอบการเรียนรู้เกี่ยวกับพวกเขา ดังนั้นในที่สุดฉันก็ดูVectorบน Wikipedia และฉันก็ประหลาดใจ เว้นแต่ว่าฉันเข้าใจผิดเวกเตอร์ (เพื่อความเรียบง่ายบอกว่ามันเป็น 2D) เป็นเพียงพิกัด x และ y หากฉันเข้าใจผิดโปรดแก้ไขให้ถูกต้อง ดังนั้นนี่คือคำถามของฉัน: นั่นไม่ได้หมายความว่าการเป็นตัวแทนของพิกัดสองมิติ (หรือสาม) เป็นเวกเตอร์? ถ้าเป็นเช่นนั้นเวกเตอร์และพิกัดก็เหมือนกัน และเป็นไปไม่ได้ที่จะสร้างเกมโดยไม่ใช้พิกัดดังนั้นเวกเตอร์จึงสร้างความสับสนหรือความใหม่ให้กับผู้ที่เคยเขียนโปรแกรมเกมจำนวนเท่าใด? นี่คือสิ่งที่ฉันสามารถใช้คำอธิบายบางอย่างใน ความช่วยเหลือใด ๆ ที่ชื่นชม

5
ฉันต้องการส่วนประกอบ 'w' ในคลาส Vector ของฉันหรือไม่
สมมติว่าคุณกำลังเขียนรหัสเมทริกซ์ที่จัดการการหมุนการแปลและอื่น ๆ สำหรับพื้นที่ 3 มิติ ตอนนี้เมทริกซ์การแปลงต้องเป็น 4x4 เพื่อให้พอดีกับองค์ประกอบการแปล อย่างไรก็ตามคุณไม่จำเป็นต้องจัดเก็บwส่วนประกอบในเวกเตอร์ใช่ไหม? แม้แต่ในการแบ่งเปอร์สเปคทีฟคุณสามารถคำนวณและจัดเก็บwนอกเวคเตอร์และแบ่งเปอร์สเปคทีฟก่อนกลับจากเมธอด ตัวอย่างเช่น: // post multiply vec2=matrix*vector Vector operator*( const Matrix & a, const Vector& v ) { Vector r ; // do matrix mult r.x = a._11*v.x + a._12*v.y ... real w = a._41*v.x + a._42*v.y ... // perspective divide r …

3
ฉันจะหาฉากตั้งฉากกับเวกเตอร์ 2D ได้อย่างไร
ฉันกำลังสร้างเกมจากบนลงล่างซึ่งผู้เล่นเลื่อนไปข้างหน้าไปยังตำแหน่งของเคอร์เซอร์ของเมาส์ ในฐานะที่เป็นส่วนหนึ่งของรหัสการเคลื่อนไหวของผู้เล่นฉันจำเป็นต้องกำหนดเวกเตอร์ที่ตั้งฉากกับเวกเตอร์ที่หันหน้าไปทางผู้เล่นในปัจจุบัน ฉันจะคำนวณเวกเตอร์ตั้งฉากของเวกเตอร์ 2D ที่กำหนดได้อย่างไร

6
เวกเตอร์ในการพัฒนาเกม
ฉันใหม่สำหรับการเขียนโปรแกรมและการเขียนโปรแกรมเกม ฉันกำลังอ่านอะไรเกี่ยวกับเวกเตอร์และคณิตศาสตร์ แต่ฉันมีคำถามฉันจะใช้เวกเตอร์ในการเขียนโปรแกรมเกมได้ที่ไหน บางทีทุกคนสามารถยกตัวอย่างง่ายๆที่คุณใช้เวกเตอร์ (ในรูปแบบ 2D) ฉันได้พบตัวอย่าง แต่ส่วนใหญ่พวกเขาอยู่ในคอนโซลที่พวกเขาส่งออกหมายเลขและตัวอย่างใหญ่ที่ฉันไม่เข้าใจ
19 vector 

7
ฉันต้องการวัตถุจุดและเวกเตอร์หรือไม่ หรือเพียงแค่ใช้วัตถุ Vector เพื่อแสดงว่าเป็นจุดหรือไม่
การสร้างส่วนประกอบของเครื่องยนต์ที่ฉันกำลังพัฒนาพร้อมกับเพื่อน (จุดประสงค์การเรียนรู้) ฉันมาถึงข้อสงสัยนี้ ตอนแรกเรามีตัวสร้าง Point ดังต่อไปนี้: var Point = function( x, y ) { this.x = x; this.y = y; }; แต่พวกเขาเราเริ่มเพิ่มคณิตศาสตร์เวกเตอร์ลงไปและพวกเขาตัดสินใจเปลี่ยนชื่อเป็น Vector2d แต่ตอนนี้วิธีการบางอย่างค่อนข้างสับสน (อย่างน้อยในความคิดของฉัน) เช่นต่อไปนี้ซึ่งใช้ในการสร้างบรรทัด: //before the renaming of Point to Vector2, the parameters were startingPoint and endingPoint Geometry.Line = function( startingVector, endingVector ) { //... }; ฉันควรสร้างนวกรรมิกเฉพาะสำหรับวัตถุ Point …

1
กำหนดความยาวส่วนโค้งของเส้นโค้ง Catmull-Rom เพื่อเคลื่อนที่ด้วยความเร็วคงที่
ฉันมีเส้นทางที่กำหนดโดยการต่อข้อมูลของ Catmull-Rom splines ฉันใช้วิธีการคงที่ Vector2.CatmullRom ใน XNA ที่ช่วยให้การแก้ไขระหว่างจุดที่มีค่าไปจาก 0 ถึง 1 ไม่ใช่เส้นโค้งทุกเส้นในเส้นทางนี้ที่มีความยาวเท่ากัน สิ่งนี้ทำให้เกิดความแตกต่างของความเร็วถ้าฉันปล่อยให้น้ำหนักเคลื่อนที่ด้วยความเร็วคงที่สำหรับทุกเส้นโค้งในขณะที่เดินไปตามเส้นทาง ฉันสามารถแก้ไขได้โดยให้ความเร็วของน้ำหนักขึ้นอยู่กับความยาวของเส้นโค้ง ฉันจะกำหนดความยาวของเส้นโค้งดังกล่าวได้อย่างไร ฉันควรจะประมาณโดยตัดเส้นโค้งเป็น 10 เส้นตรงและรวมความยาวของพวกเขา? ฉันใช้สิ่งนี้สำหรับการทำแผนที่พื้นผิวแบบไดนามิกในตาข่ายที่สร้างขึ้นที่กำหนดโดยเส้นโค้ง

7
วิธีที่ดีที่สุดในการแปลงเวกเตอร์ 2D เป็นทิศทางเข็มทิศ 8 ทิศทางที่ใกล้ที่สุดคืออะไร?
หากคุณมีเวกเตอร์ 2D แสดงเป็น x และ y วิธีที่ดีในการแปลงให้เป็นทิศทางเข็มทิศที่ใกล้ที่สุดคืออะไร? เช่น x:+1, y:+1 => NE x:0, y:+3 => N x:+10, y:-2 => E // closest compass direction

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