คำถามติดแท็ก linear-algebra

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

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

3
มีการฉาย 3 มิตินอกเหนือจาก orthographic และมุมมอง? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา คำถามนั้นค่อนข้างมากในชื่อเรื่อง มีการฉายภาพ 3 มิติที่น่าสนใจนอกเหนือจาก orthographic และมุมมองที่สามารถใช้ในระบบ 3D เช่น OpenGL ได้หรือไม่? โดยเฉพาะอย่างยิ่งมีอะไรบ้างไหมที่มีความพิเศษในการออกแบบเกม?

6
หนังสือพีชคณิตเชิงเส้นที่ดีสำหรับโปรแกรมเมอร์เกมคืออะไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันบอกว่าฉันควรเริ่มเรียนรู้พีชคณิตเชิงเส้นเพื่อสร้างเกมที่ดีกับฟิสิกส์ที่ดี ฉันกำลังอ่านหนังสือพีชคณิตเชิงเส้นและมันต่างกับฉันอย่างสิ้นเชิง ผู้เขียนเริ่มต้นด้วยการแก้สมการเชิงเส้น (สองสมการ, สองตัวแปร) และฉันจำได้ว่าเรียนรู้เกี่ยวกับสิ่งนั้นในโรงเรียน แต่เกือบจะในทันทีเขาก็กระโดดไปสู่สิ่งอื่น ๆ ฉันสามารถอ่านหนังสืออะไรเพื่อเรียนรู้คณิตศาสตร์ที่ดี แต่เริ่มจากพื้นฐานขั้นต้น ขอบคุณมากสำหรับความช่วยเหลือ.

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

6
หัวข้อทางคณิตศาสตร์สำหรับการเขียนโปรแกรมกราฟิก 3D [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน4 ปีที่แล้ว ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันเข้าใจว่าต้องใช้หัวข้อทางคณิตศาสตร์ต่อไปนี้ในการเขียนโปรแกรมกราฟิก 3D ฉันเริ่มทำบางอย่างในวิชาคณิตศาสตร์ของฉัน ใครบางคนสามารถชี้ให้ฉันไปในทิศทางของทรัพยากรที่อธิบายได้อย่างไรพวกเขาใช้? ปัญหากราฟิก / เกมใดที่พวกเขาใช้ในการแก้ไข คณิตศาสตร์เวกเตอร์ คณิตศาสตร์เมทริกซ์ quaternions พีชคณิตเชิงเส้น เท่าที่ฉันเห็นเหล่านี้เป็นหัวข้อพีชคณิตเชิงเส้น / เมทริกซ์ มีหัวข้ออื่นที่จำเป็นอีกไหม?

3
ฉันจะย้อนกลับผลกระทบของเมทริกซ์การแปลงได้อย่างไร
ฉันเพิ่งทำงานเกมโดยใช้ OpenGL และ C ++ ผ่าน GLFW ในเกมฉันมีเรือบินพร้อมป้อมปืนติดตั้งอยู่ เรือเหาะเคลื่อนที่ไปรอบ ๆ ในพิกัดอวกาศโลกและป้อมปราการ 'ตาม' มัน ป้อมปืนมีพื้นที่ประสานงานเป็นของตัวเองสำหรับทิศทางการมอง / เล็ง โดยทั่วไปเมื่อป้อมปืนมุ่งไปในทิศทาง(0,0,1)มันจะมุ่งขนานไปกับทิศทางการเคลื่อนที่ของเรือบิน เพื่อให้เป้าหมายอวกาศของป้อมปืนฉันมีเมทริกซ์ที่ใช้พิกัดอวกาศของโลกและเปลี่ยนสิ่งเหล่านี้เป็นพิกัดอวกาศของป้อมปืน เมื่อป้อมยิงฉันต้องการให้ลูกกระสุนออกมาในอวกาศโลกมีวิธีที่ดีในการใช้เมทริกซ์การแปลงของฉันเพื่อแปลงพิกัดของป้อมปืนกลับสู่อวกาศโลกหรือไม่? วิธีทั่วไปมากขึ้นของการถามคำถามที่อาจจะ: ถ้าฉันมีเมทริกซ์Mที่ใช้พิกัดจากพื้นที่ไปยังพื้นที่A Bมีวิธีง่าย ๆ ในการใช้MพิกัดจากBถึงAหรือไม่?

4
วิธีการตรวจจับเส้น 2D บนการชนกันของเส้น
ฉันเป็นนักพัฒนาเกมแอ็คชั่นแฟลชผู้ซึ่งย้อนหลังไปกับคณิตศาสตร์อยู่บ้าง แต่ฉันคิดว่าฟิสิกส์น่าสนใจและเท่ห์มาก สำหรับการอ้างอิงนี้เป็นเกมที่คล้ายกับเกมที่ฉันทำ: เกมแฟลชแก้ ฉันได้สร้างเกมที่ไม่พันกันนี้จนเกือบเต็มไปด้วยตรรกะ แต่เมื่อเส้นสองเส้นตัดกันฉันต้องการเส้นตัดเหล่านั้นหรือ 'พันกัน' เพื่อแสดงสีที่แตกต่างกัน สีแดง มันจะเป็นคนที่ใจดีจริงๆถ้าคุณสามารถแนะนำอัลกอริทึมสำหรับการตรวจจับการชนกันของส่วนของเส้น ฉันเป็นคนที่ชอบคิดว่า 'เห็น' มากกว่า 'เลขคณิต' :) แก้ไข: ฉันต้องการเพิ่มไดอะแกรมสองสามรายการเพื่อให้สื่อความคิดชัดเจนยิ่งขึ้น ป.ล. ฉันพยายามทำหน้าที่เป็น private function isIntersecting(A:Point, B:Point, C:Point, D:Point):Boolean ขอบคุณล่วงหน้า.

3
การเดินแบบสุ่มแบบเอนเอียงและอนุรักษ์นิยม
ฉันมีเทพดาซึ่งมีVelocityและทั้งเก็บไว้เป็นPosition Vector2ในแต่ละUpdateรอบความเร็วจะถูกเพิ่มเข้าไปในตำแหน่ง ฉันอยากให้สไปรต์เวกเตอร์ตัวที่สาม, Target. อาจมีการกำหนดเป้าหมายใหม่ในการวนซ้ำใด ๆ ฉันต้องการให้ผีสไปรต์เคลื่อนไหวเป็นหลักในรูปแบบการเดินแบบสุ่ม แต่ต้องมีพารามิเตอร์สองพารามิเตอร์ดังนี้: การเดินสุ่มโดยทั่วไปมีแนวโน้มที่จะเพิ่มหรือลดระยะทางให้เท่ากันTarget(บวกกับโอกาสเล็กน้อยของการเคลื่อนไหวแบบสัมผัส) ฉันต้องสามารถอคติการเดินแบบสุ่มของฉันในขณะที่ยังคงสุ่มทิศทางที่สไปรต์ "ตัดสินใจ" ควรมีแนวโน้มที่จะนำมันเข้ามาใกล้Targetยิ่งขึ้น การเดินแบบสุ่มควร "ราบรื่น" - สไปรต์ไม่ควรเปลี่ยนทิศทางอย่างรวดเร็วเนื่องจากจะดูเหมือนว่า "ริบหรี่" หรือ "สั่น" กับผู้เล่น มันควรค่อย ๆ เปลี่ยนทิศทางด้วยวิธีนี้หรืออย่างนั้นเคลื่อนแบบสุ่มในขณะที่เข้าใกล้อย่างช้า ๆ เมื่อเฉลี่ย อะไรคือวิธีที่ดีและเรียบง่ายในการทำสิ่งนี้? ถ้าเป็นไปได้ให้คำตอบเป็นVector2 RandomWalk(Vector2 target)วิธี ฉันมีNextGaussian(mean, stdev)วิธีที่ใช้ได้อยู่แล้วหากเป็นประโยชน์

5
ฉันจะฉายจุดหลังกล้องได้อย่างถูกต้องได้อย่างไร?
ฉันกำลังสร้างเกม 3 มิติโดยใส่เครื่องหมายอัศเจรีย์เหนือจุดสนใจ เพื่อที่จะหาว่าในหน้าจอ 2D ที่ฉันควรวางเครื่องหมายของฉันฉันกำลังฉายจุด 3D ด้วยตนเองที่เครื่องหมายควร ดูเหมือนว่านี้: ดูดีทีเดียว เมื่อเครื่องหมายอยู่นอกหน้าจอฉันเพียงแค่คลิปพิกัดเพื่อให้พอดีกับหน้าจอ ดูเหมือนว่านี้: จนถึงตอนนี้ความคิดก็ไปได้สวย อย่างไรก็ตามเมื่อจุดที่น่าสนใจอยู่ด้านหลังกล้องพิกัด X, Y ที่ได้จะกลับด้าน (เหมือนเป็นบวก / ลบ) และฉันก็ได้เครื่องหมายที่ปรากฏบนมุมตรงข้ามของหน้าจอดังนี้: (จุดที่คาดการณ์ไว้จากนั้นเป็นจุดปลายของเครื่องหมายไม่ต้องคำนึงถึงการหมุนของเครื่องหมาย) มันสมเหตุสมผลแล้วเนื่องจากพิกัดที่อยู่เบื้องหลัง frustum นั้นกลับด้านใน X และ Y ดังนั้นสิ่งที่ฉันทำคือสลับกลับพิกัดเมื่ออยู่ด้านหลังกล้อง อย่างไรก็ตามฉันยังไม่รู้ว่าอะไรเป็นเงื่อนไขที่แน่นอนเมื่อพิกัดควรกลับด้าน นี่คือสิ่งที่รหัสการคาดการณ์ของฉันดูเหมือน (ใน C # กับ SharpDX): public override PointF ProjectPosition(float viewportWidth, float viewportHeight, float y) { var projectionMatrix = Matrix.PerspectiveFovRH(GetCalibratedFOV(Camera.FOV, …

2
คุณจะแยกการวางแนวจากเมทริกซ์การแปลงได้อย่างไร?
ฉันมีเมทริกซ์การแปลง 4x4 M และฉันต้องการค้นหารูปร่างของทรงกลมเมื่อเปลี่ยนโดย M (ทรงกลมอยู่ที่จุดกำเนิดและมีรัศมี 1) ฉันรู้ว่าฉันสามารถหาจุดศูนย์กลางได้โดยการคูณ M ด้วย (0,0,0,1) อย่างไรก็ตามรัศมีกลายเป็นปัญหาเนื่องจาก M สามารถบีบและหมุนทรงกลมได้ ฉันจะทราบรัศมีใหม่ของทรงรีที่เกิดขึ้นได้อย่างไร มีวิธีใดบ้างในการค้นหาการปฐมนิเทศ? โดยเฉพาะอย่างยิ่งฉันจำเป็นต้องรู้ขนาดของทรงกลมที่มีขอบเขตซึ่งจะล้อมรอบทรงกลมที่ถูกเปลี่ยนรูป กล่าวอีกนัยหนึ่งค่าสูงสุดคืออะไร | M * V - M * (0,0,0,1) | โดยที่ V คือเวกเตอร์หน่วย (จุดบนทรงกลมดั้งเดิม)

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

4
การเคลื่อนย้ายวัตถุที่ปะทะกันเมื่อใช้การหลีกเลี่ยงการชนที่ไม่ได้ลงทะเบียน (พวงมาลัย)
ฉันมีปัญหากับการหลีกเลี่ยงการชนที่ไม่สอดคล้องกับสิ่งที่ฉันคิดว่าเป็นกรณีที่หายาก ฉันได้ตั้งวัตถุสองชิ้นให้เคลื่อนที่เข้าหากัน แต่มีการชดเชยเล็กน้อยดังนั้นวัตถุหนึ่งจึงเคลื่อนที่ขึ้นไปเล็กน้อยและวัตถุหนึ่งกำลังเคลื่อนที่ลงมาเล็กน้อย ในอัลกอริทึมการหลีกเลี่ยงการชนที่ไม่จัดแนวของฉันกำลังหาจุดบนเส้นข้างหน้าของวัตถุและเส้นข้างหน้าของวัตถุอื่นที่เส้นทั้งสองนี้ใกล้เคียงที่สุด หากจุดที่อยู่ใกล้ที่สุดเหล่านี้อยู่ในระยะการหลีกเลี่ยงการชนและหากระยะห่างระหว่างจุดเหล่านั้นมีขนาดเล็กกว่ารัศมีสองจุดของขอบเขตทรงกลมของวัตถุสองจุดวัตถุนั้นควรเคลื่อนที่ออกไปในทิศทางที่เหมาะสม ปัญหาคือสำหรับกรณีของฉันจุดที่อยู่ใกล้ที่สุดบนบรรทัดนั้นจะถูกคำนวณให้ห่างจากจุดชนจริง ๆ นี่เป็นเพราะทั้งสองเส้นไปข้างหน้าสำหรับแต่ละวัตถุจะย้ายออกจากกันเมื่อวัตถุผ่าน ปัญหาคือเนื่องจากสิ่งนี้ไม่มีการบังคับเลี้ยวและวัตถุทั้งสองชนกันบางส่วน ไม่มีใครมีคำแนะนำใด ๆ เกี่ยวกับวิธีที่ฉันสามารถคำนวณจุดชนได้อย่างถูกต้องหรือไม่? บางทีโดยคำนึงถึงขนาดของวัตถุทั้งสองแล้ว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.