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

คำถามคณิตศาสตร์ที่เกี่ยวข้องกับคณิตศาสตร์เรขาคณิตแคลคูลัสสูตรและการคำนวณอื่น ๆ ที่ใช้ในการพัฒนาเกม

4
คุณคำนวณจุดที่ใกล้ที่สุดบนเส้นโค้ง 2 เส้นได้อย่างไร
เมื่อพิจารณาจากจุดของเส้นตรงและเส้นโค้งเบซิเยร์กำลังสองคุณจะคำนวณจุดที่ใกล้ที่สุดได้อย่างไร .... ในทำนองเดียวกันเมื่อกำหนดจุดโค้ง 2 จุดคุณจะได้รับจุดที่ใกล้ที่สุดได้อย่างไร

2
ฉันจะหมุนรอบจุดโดยพลการในแบบ 3 มิติ (แทนที่จะเป็นจุดกำเนิด) ได้อย่างไร
ฉันมีบางรุ่นที่ฉันต้องการหมุนโดยใช้ quaternions ในลักษณะปกติยกเว้นการหมุนเกี่ยวกับจุดกำเนิดฉันต้องการให้ออฟเซ็ตเล็กน้อย ฉันรู้ว่าคุณไม่ได้พูดว่าในพื้นที่ 3 มิติที่คุณหมุนรอบจุด; คุณบอกว่าคุณหมุนรอบแกน ดังนั้นฉันจึงจินตนาการว่ามันหมุนไปรอบ ๆ เวกเตอร์ซึ่งหางอยู่ในตำแหน่งที่ไม่ได้มาจากแหล่งกำเนิด การแปลงเลียนแบบทั้งหมดในเครื่องมือเรนเดอร์ / ฟิสิกส์ของฉันถูกเก็บไว้โดยใช้ SQT (สเกล, quaternion, การแปลความคิดที่ยืมมาจากหนังสือGame Engine Architecture ) ดังนั้นฉันจึงสร้างเมทริกซ์แต่ละเฟรมจากส่วนประกอบเหล่านี้ ในระบบนี้การแปลจะถูกนำไปใช้จากนั้นปรับขนาดแล้วหมุน ในกรณีเฉพาะฉันต้องแปลวัตถุในอวกาศโลกหมุนและหมุนรอบจุดยอดที่ไม่ได้อยู่กึ่งกลางที่จุดกำเนิดของวัตถุ คำถาม:ด้วยข้อ จำกัด ของระบบปัจจุบันของฉันที่อธิบายไว้ข้างต้นฉันจะบรรลุการหมุนเวียนในท้องถิ่นโดยมีศูนย์กลางที่จุดใดจุดหนึ่งนอกเหนือจากจุดกำเนิดได้อย่างไร โหวตอัตโนมัติให้กับทุกคนที่สามารถอธิบายวิธีการทำเช่นนี้โดยใช้เมทริกซ์เท่านั้นเช่นกัน :)

3
แกล้งทำกราฟิกสามมิติในเกมอวกาศ 2 มิติ
ปิดครั้งแรกผมรู้ว่าสิ่งที่ปัญหาภาพวาดของฉันเป็นและฉันมีความคิดที่แตกต่างกันเกี่ยวกับวิธีการแก้มัน ฉันมาที่นี่เพื่อหาวิธีการปรับเฟรมที่ถูกวาดเพื่อให้ "ภาพลวงตา" มีมิติเท่ากันได้รับการดูแล ฉันกำลังเขียนเกมดูนกแบบ 2 มิติที่เกิดขึ้นในอวกาศ ฉันกำลังพยายามใช้กราฟิกสามมิติในโลกที่อัพอยู่เหนือไม่มีโลกหมุนของเกมเหมือนในเกมไอโซโทปดั้งเดิม (โปรดจำไว้ว่าเกมเกิดขึ้นในอวกาศไม่มีภูมิประเทศ) นี่คือตัวอย่างสไปรต์ที่ฉันพยายามใช้: http://cell.stat-life.com/images/stories/AsteroidOutpost/Spaceship64.pngหมุน 64 ครั้งเกี่ยวกับแกนตั้งของมันในมุมมอง 35 องศา (aka, ISO) ภาพถูกสร้างขึ้นดังนั้นสิ่งนี้สามารถเปลี่ยนแปลงได้ เพื่อความชัดเจนฉันได้บอกว่าทิศเหนือ (ขึ้น) คือ 0 องศาและทิศตะวันออก (ขวา) คือ 90 ปัญหาของฉันคือผีสางของฉันไม่ได้ดูเหมือนว่ามันจะหันหน้าไปทางที่เกมคิดว่าเป็นเพราะความแตกต่างในเครื่องบิน 3 มิติที่ใช้ ไม่แน่ใจว่าฉันใช้คำศัพท์อย่างถูกต้องหรือไม่ยานอวกาศของฉันหมุนไปในระนาบเดียวและระนาบมุมมองกำลังคาดหวังว่าสิ่งต่าง ๆ จะหมุนบนเครื่องบินของตัวเอง นี่คือภาพของปัญหา: http://cell.stat-life.com/images/stories/AsteroidOutpost/ProjectIssue.png ด้านซ้ายฉันมีมุมมองด้านข้างทางขวาฉันมีมุมมองจากบนลงล่าง ด้านบนฉันมีมุมมองของยานอวกาศ / แผ่นสไปรต์ของโลก ที่ด้านล่างฉันมีสิ่งที่เทพดาดูเหมือนเมื่อวาดลงบนหน้าจอ ที่ด้านบนขวาเป็นเวอร์ชั่นที่เรียบง่ายของวิธีการหมุนยานอวกาศของฉัน (แม้จะมีการแยกองศาระหว่างแต่ละเฟรม) ที่มุมล่างขวาคือมุมที่สไปรต์ดูเหมือนว่ากำลังหันหน้าไปเมื่อวาดมุมใดมุมหนึ่งบนหน้าจอ ปัญหานี้เกิดขึ้นอย่างชัดเจนที่สุดประมาณ 45 องศา นี่คือภาพที่วางซ้อนกับเส้น "ระนาบหน้าจอ" ซึ่งชี้ไปในทิศทางที่เรือควรหันเข้าหา: http://cell.stat-life.com/images/stories/AsteroidOutpost/Spaceship64RedLine.pngเส้นสีแดงควรเสมอจะชี้ไปในทิศทางเดียวกันกับเรือ แต่เป็นคุณสามารถมองเห็นปัญหาการฉายที่เป็นสาเหตุของปัญหา …

6
วัตถุประสงค์ของปริมาณการดูเป็นที่ยอมรับคืออะไร?
ฉันกำลังเรียนรู้ OpenGL และไม่สามารถหาคำตอบสำหรับคำถามนี้ได้ หลังจากเมทริกซ์การฉายภาพถูกนำไปใช้กับพื้นที่มุมมองพื้นที่การดูเป็น "ปกติ" เพื่อให้จุดทั้งหมดอยู่ในช่วง [-1, 1] โดยทั่วไปจะเรียกว่า "ปริมาณมุมมองมาตรฐาน" หรือ "พิกัดอุปกรณ์ปกติ" ในขณะที่ฉันได้พบแหล่งข้อมูลมากมายที่บอกฉันเกี่ยวกับสิ่งที่เกิดขึ้นฉันไม่เห็นอะไรเลยว่าทำไมมันถึงเกิดขึ้น จุดประสงค์ของขั้นตอนนี้คืออะไร?

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

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

3
การจำลองการทอยลูกเต๋าจำนวนมากโดยไม่ต้องวนซ้ำอย่างแม่นยำหรือไม่
ตกลงดังนั้นหากเกมของคุณหมุนลูกเต๋าจำนวนมากคุณสามารถโทรหาตัวสร้างตัวเลขสุ่มในลูป แต่สำหรับลูกเต๋าชุดใดที่มีการกลิ้งบ่อยครั้งพอคุณจะได้เส้นโค้งการกระจาย / ฮิสโตแกรม ดังนั้นคำถามของฉันคือมีการคำนวณอย่างง่ายดีฉันสามารถเรียกใช้ที่จะให้ฉันหมายเลขที่เหมาะกับการกระจายนั้น เช่น 2D6 - คะแนน -% ความน่าจะเป็น 2 - 2.77% 3 - 5.55% 4 - 8.33% 5 - 11.11% 6 - 13.88% 7 - 16.66% 8 - 13.88% 9 - 11.11% 10 - 8.33% 11 - 5.55% 12 - 2.77% ดังนั้นการรู้ข้างต้นคุณสามารถหมุน d100 เดี่ยวและหาค่า 2D6 ที่ถูกต้องได้ แต่เมื่อเราเริ่มต้นด้วย …

1
หน่วยการแปลหน่วย Orthographic ไม่ตรงกันในตาราง (เช่น 64 พิกเซลแปลไม่ถูกต้อง)
ฉันกำลังมองหาข้อมูลเชิงลึกเกี่ยวกับปัญหาเล็ก ๆ ด้วยการแปลหน่วยบนกริด อัปเดตและแก้ไข ฉันแก้ไขปัญหาของฉันเอง ดูรายละเอียดด้านล่าง ทุกอย่างในส่วนนี้ของโพสต์กลายเป็นถูกต้อง หากสิ่งใดมันสามารถทำหน้าที่เป็นแบบฝึกหัด / ตัวอย่าง / ช่วยเหลือขนาดเล็กสำหรับบุคคลต่อไป ติดตั้ง FBO, VAO, VBO หน้าต่าง 512x448 ตาราง 64x64 gl_Position = projection * world * position; projectionถูกกำหนดโดยortho(-w/2.0f, w/2.0f, -h/2.0f, h/2.0f);นี่คือฟังก์ชั่นการฉายภาพแบบตั้งฉากกับตำรา world ถูกกำหนดโดยตำแหน่งกล้องคงที่ที่ (0, 0) position ถูกกำหนดโดยตำแหน่งของสไปรต์ ปัญหา ในภาพหน้าจอด้านล่าง (มาตราส่วน 1: 1) ระยะห่างของกริดคือ 64x64 และฉันกำลังวาดหน่วยที่ (64, 64) อย่างไรก็ตามหน่วยวาดประมาณ ~ 10px …

3
รับมุมเป็นเรเดียนกำหนดจุดบนวงกลม
ฉันกำลังทำงานกับแป้นหมุนที่หมุนรอบวงกลม ปุ่มหมุนนี้จะช่วยให้คุณสามารถย้ายที่ใดก็ได้ในวงกลมเพื่อปรับตำแหน่งของวงแหวนเป็นจุดบนวงกลมที่มีมุมเดียวกับการคลิก ตัวอย่างเช่นจากการหมุนด้านบนหากคุณคลิกจุดที่แสดงเป็นสีชมพูด้านล่างฉันจะย้ายการหมุนด้านบนจุดนั้น แต่ในวงกลม ฉันรู้วิธีรับตำแหน่งของจุดบนวงกลมที่ให้รัศมีและมุม (เป็นเรเดียน) นั่นคือสูตรนี้ : x = Cos(angle) * radius + CenterX; y = Sin(angle) * radius + CenterY; อย่างไรก็ตามฉันกำลังมองหาที่จะทำตรงกันข้าม - ฉันมีจุดคลิกที่ฉันต้องการที่จะกลายเป็นจุดบนวงกลม (ที่ปุ่มควบคุมไป) ฉันพยายามใช้จุดนี้ (และรัศมีที่กำหนด) เพื่อหามุมในหน่วยเรเดียนเพื่อให้ฉันสามารถวางปุ่มควบคุมบนวงกลมในมุมเดียวกัน มีสูตรที่ใช้งานง่ายที่ฉันสามารถใช้เพื่อทำให้สิ่งนี้สำเร็จหรือไม่?

6
ห้องสมุด SIMD C ++ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ในอดีตฉันเคยใช้ Visual Studio กับห้องสมุดคณิตศาสตร์ DirectX XNA ตอนนี้ฉันใช้คอมไพเลอร์ GNU ใครสามารถให้คำแนะนำห้องสมุดคณิตศาสตร์ SIMD ด้วยเอกสารที่ดี?
14 c++  mathematics  simd 

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

5
มีคำทั่วไปที่ครอบคลุมการจัดการตำแหน่งการหมุนและการปรับขนาดด้วยกันไหม?
ฉันกำลังมองหาชื่อสำหรับชั้นเรียนของฉันที่จัดการเมทริกซ์ 4x4 ที่จัดการตำแหน่งการหมุนและสเกล มีคำทั่วไปที่ครอบคลุมทั้งสามหรือไม่ (ฉันแบ่งคณิตศาสตร์เมทริกซ์เป็นไฟล์ / คลาสของตัวเอง)

5
ห้องสมุดคณิตศาสตร์ที่สมบูรณ์สำหรับใช้ในเกม OpenGL ES 2.0 หรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา คุณทราบหรือไม่ว่าไลบรารีคณิตศาสตร์ข้ามแพลตฟอร์มที่สมบูรณ์ (หรือเกือบจะสมบูรณ์) สำหรับใช้ในเกม OpenGL ES 2.0? ห้องสมุดควรมี: คลาส Matrix2x2, เมทริกซ์ 3x3, Matrix4x4 quaternions คลาส Vector2, Vector3, Vector4 คลาสมุมออยเลอร์ การดำเนินการในชั้นเรียนที่กล่าวถึงการแปลง ฯลฯ การดำเนินการทางคณิตศาสตร์ที่ใช้เป็นมาตรฐานในกราฟิก 3 มิติ (ผลิตภัณฑ์ Dot, Cross Product, SLERP, ฯลฯ ... ) มี API คณิตศาสตร์ดังกล่าวสามารถใช้ได้ทั้งแบบสแตนด์อโลนหรือเป็นส่วนหนึ่งของแพคเกจใด ๆ ? ภาษาการเขียนโปรแกรม: Visual C …

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

1
วิธีการใช้กลไกของความเครียด / ความเครียดในภูมิประเทศ voxel?
ฉันอยู่ในขั้นตอนการพัฒนาโลกที่เหมือน Minecraft ซึ่งภูมิประเทศแบ่งออกเป็น voxels อย่างไรก็ตามฉันยังต้องการให้การกำหนดค่าของภูมิประเทศที่ไม่เสถียรลดลงอย่างไม่แน่นอน ยกตัวอย่างเช่นแขวนที่หนักเกินไปจะแตกหักและทำลายปิดที่ชุ 'ความเครียดสูง'ราวกับจะก่อเสาที่มีฐานการกัดเซาะไม่สมมาตร ฉันกำลังคิดที่จะเพิ่มฟิลด์ 'stress vector' ลงในแต่ละ voxel ในภูมิประเทศและทำสิ่งต่อไปนี้ (pseudocode): foreach voxel in terrain foreach neighbor in voxel.neighbor_voxels() if magnitude(voxel.stress - neighbor.stress) > stressThreshold detach_voxels(voxel, neighbor) แต่ปัญหาคือฉันไม่รู้ว่าจะคำนวณความเค้นเหล่านี้อย่างไร มีอัลกอริธึมที่ใช้ FEA แบบพิเศษสำหรับการแยกย่อยด้วย voxel ที่ฉันสามารถใช้ในการคำนวณความเค้นบนพื้นฐานของต่อ voxel หรือไม่? หรือฉันกำลังเข้าใกล้สิ่งนี้ผิดทั้งหมดและมีวิธีอื่นที่จะทำเช่นนี้?

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