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

สาขาคณิตศาสตร์ที่เกี่ยวข้องกับคำถามของรูปร่างขนาดตำแหน่งสัมพัทธ์ของตัวเลขและคุณสมบัติของพื้นที่

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

2
ฉันกำลังหมุนวัตถุบนสองแกนดังนั้นทำไมมันหมุนรอบแกนที่สามต่อไป?
ฉันเห็นคำถามเกิดขึ้นบ่อยครั้งที่มีปัญหาพื้นฐานนี้ แต่ทุกคำถามล้วนแล้วแต่เกี่ยวข้องกับคุณลักษณะหรือเครื่องมือที่กำหนด นี่คือความพยายามในการสร้างคำตอบที่ยอมรับได้ซึ่งเราสามารถอ้างถึงผู้ใช้เมื่อเกิดเหตุการณ์นี้ขึ้น - ด้วยตัวอย่างภาพเคลื่อนไหวมากมาย! :) สมมติว่าเรากำลังสร้างกล้องตัวแรก แนวคิดพื้นฐานคือควรหันเหมองไปทางซ้ายและขวา ดังนั้นเราจึงเขียนโค้ดแบบนี้ (ใช้ Unity เป็นตัวอย่าง): void Update() { float speed = lookSpeed * Time.deltaTime; // Yaw around the y axis using the player's horizontal input. transform.Rotate(0f, Input.GetAxis("Horizontal") * speed, 0f); // Pitch around the x axis using the player's vertical input. transform.Rotate(-Input.GetAxis("Vertical") * …

9
ฉันจะหาปริมาณความตรงของเส้นตรงได้อย่างไร
ฉันกำลังทำงานกับเกมที่ต้องการให้ผู้เล่นวาดเส้นจากจุด A (x1, y1) ไปยังอีกจุด B (x2, y2) บนหน้าจอของอุปกรณ์ Android ฉันต้องการค้นหาว่าการวาดที่เหมาะสมกับเส้นตรงนั้นดีแค่ไหน ตัวอย่างเช่นผลลัพธ์ 90% จะหมายถึงการวาดเส้นนั้นเหมาะกับเส้น หากผู้เล่นลากเส้นโค้งจาก A ถึง B ก็ควรได้คะแนนต่ำ ไม่ทราบจุดสิ้นสุดล่วงหน้า ฉันจะทำสิ่งนี้ได้อย่างไร

4
ทำไมวัตถุของฉันเคลื่อนที่เร็วกว่า 45 องศามากกว่า 90 องศา
ฉันมีวัตถุในเกมของฉันที่เคลื่อนที่เร็วขึ้นที่ 45 องศาจากนั้นที่ 90 องศา แต่ละวัตถุมี ตำแหน่งจุด (x, y) ทิศทาง Vector2D (x, y) ความเร็วสูง และสิ่งที่ฉันทำในระหว่างการอัพเดทคือตำแหน่งใหม่จะถูกคำนวณดังนี้: position.x += direction.x * speed position.y += direction.y * speed ฉันจะแก้ไขสิ่งนี้ได้อย่างไร ฉันต้องการให้มันเคลื่อนที่ด้วยความเร็วเท่ากันทุกมุม
32 c#  2d  geometry 

1
คุณจะเปลี่ยนลูกบาศก์เป็นทรงกลมได้อย่างไร
ฉันพยายามสร้างทรงกลมรูปสี่เหลี่ยมตามบทความซึ่งแสดงผลลัพธ์ดังนี้: ฉันสามารถสร้างลูกบาศก์ได้อย่างถูกต้อง: แต่เมื่อฉันแปลงคะแนนทั้งหมดตามสูตรนี้ (จากหน้าที่ลิงก์ด้านบน): x = x * sqrtf(1.0 - (y*y/2.0) - (z*z/2.0) + (y*y*z*z/3.0)); y = y * sqrtf(1.0 - (z*z/2.0) - (x*x/2.0) + (z*z*x*x/3.0)); z = z * sqrtf(1.0 - (x*x/2.0) - (y*y/2.0) + (x*x*y*y/3.0)); ทรงกลมของฉันมีลักษณะเช่นนี้: อย่างที่คุณเห็นขอบของลูกบาศก์ยังคงโผล่ออกมาไกลเกินไป ลูกบาศก์มีช่วงตั้งแต่-1ถึง+1แกนทั้งหมดเช่นบทความบอกไว้ ความคิดใด ๆ ที่ผิดปกติ?
31 3d  geometry  sphere 

6
ฉันจะคำนวณระยะห่างระหว่างจุดและสี่เหลี่ยมผืนผ้าที่จัดแนวแกนได้อย่างไร
ฉันมีรูปสี่เหลี่ยมผืนผ้า 2 มิติที่มี x, ตำแหน่ง y, ความสูงและความกว้างและมีตำแหน่งที่อยู่ใกล้เคียงแบบสุ่ม มีวิธีการตรวจสอบว่าจุดนี้อาจชนกับสี่เหลี่ยมถ้ามันใกล้กว่าระยะทางที่กำหนดหรือไม่ ลองจินตนาการถึงรัศมีที่มองไม่เห็นนอกจุดที่ชนกับสี่เหลี่ยมดังกล่าว ฉันมีปัญหากับเรื่องนี้เพียงเพราะมันไม่ใช่สแควร์!

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

4
มีแผนที่ย่อย hex แบบ 3 มิติหรือไม่
น่าจะเป็นข้อได้เปรียบที่ใหญ่ที่สุดของการเรียงแผนที่เป็นฐานหกเหลี่ยมและฐานสี่เหลี่ยมคือจุดศูนย์กลางของแต่ละฐานสิบหกมีระยะห่างเท่ากันกับฐานสิบหกที่อยู่ใกล้เคียงทั้งหมด มีรูปร่างที่คล้ายกันซึ่งเรียงต่อกันด้วยวิธีนี้ในแบบ 3 มิติและเอ็นจิ้นที่รองรับรูปแบบดังกล่าวหรือไม่?

4
เป็นระยะทางแมนฮัตตันระยะทางเดียวเมื่อใช้เป็นฟังก์ชั่นแก้ปัญหาหรือไม่?
ฉันมีแผนที่รูปสี่เหลี่ยม อนุญาตให้มีการเคลื่อนไหวในแนวนอนและแนวตั้งเท่านั้น (ไม่มีเส้นทแยงมุม) ราคาการเคลื่อนไหวอยู่เสมอ 1 ฉันกำลังใช้อัลกอริทึม A * บนแผนที่นั้นโดยใช้ระยะทางแมนฮัตตันเป็นฮิวริสติกระยะทาง ฮิวริสติกนี้สอดคล้องกันหรือไม่? ฉันสามารถหลีกเลี่ยงการตรวจสอบg(node)กับโหนดที่อยู่ในชุดปิดได้หรือไม่ แก้ไข: โดยความสอดคล้องฉันหมายถึง monotonic

3
คุณจะสร้างทรงกลมโดยทางโปรแกรมได้อย่างไร
ใครช่วยอธิบายได้ว่ามันจะเป็นไปได้อย่างไรในการสร้างจุดยอด, ดัชนีและพิกัดพื้นผิว มีการขาดเอกสารที่น่าแปลกใจเกี่ยวกับวิธีการทำเช่นนั้นและเป็นสิ่งที่ฉันสนใจในการเรียนรู้ ฉันได้ลองทำอย่างชัดเจน googling ดูบน gamedev.net ฯลฯ อย่างไรก็ตามไม่มีสิ่งใดครอบคลุมถึงจุดที่เป็นทรงกลมสร้างดัชนีเหล่านี้และพื้นผิว

2
ฉันจะฉายจุด 3D ลงบนเส้น 3D ได้อย่างไร
สมมุติว่าฉันมีเส้นตรงที่กำหนดโดยสองจุดAและBทั้งสองอยู่ในรูปแบบ(x, y, z)ทั้งในรูปแบบจุดเหล่านี้แสดงบรรทัดในพื้นที่ 3 มิติ ฉันยังมีประเด็น Pกำหนดในรูปแบบเดียวกันนั่นไม่ได้อยู่ในบรรทัด ฉันจะคำนวณเส้นโครงของจุดนั้นบนเส้นตรงได้อย่างไร ฉันตระหนักถึงวิธีการทำเช่นนี้ในแบบ 2D แต่ 3D ดูเหมือนว่าจะมี bugger ทรัพยากรทั้งหมดอยู่ในนั้น

5
ฉันจะบอกได้อย่างไรว่าวัตถุกำลังเคลื่อนไหว CW หรือ CCW รอบ ๆ เส้นทางที่เชื่อมต่อหรือไม่
ให้บอกว่าเรามีรูปร่างขรุขระ: และสิ่งมีชีวิตสองอย่างที่เคลื่อนไหวตามโครงร่าง จากนั้นเราปรับรูปร่างให้เรียบโดยการดึงมุมออกมา เราได้รับสิ่งนี้: ตอนนี้เป็นเรื่องง่ายที่จะเห็นว่า Orange กำลังเคลื่อนไหว CW และ CCW สีเขียว ฉันจะบอกได้อย่างไรว่าทิศทางใดที่พวกเขาเคลื่อนไหวโดยไม่ทำให้รูปร่างเรียบ ภาพใหม่
19 geometry 

2
ฉันจะแปลงการคลิกเมาส์เป็นรังสีได้อย่างไร
ฉันมีมุมมองที่ฉาย เมื่อผู้ใช้คลิกบนหน้าจอฉันต้องการคำนวณรังสีระหว่างระนาบใกล้และไกลที่ทำโครงการจากจุดเม้าส์ดังนั้นฉันจึงสามารถทำโค้ดสี่แยกเรย์กับโลกของฉันได้ ฉันใช้คลาสเมทริกซ์และเวกเตอร์และเรย์ของตัวเองและมันทำงานได้อย่างที่คาดไว้ อย่างไรก็ตามเมื่อฉันลองและแปลงรังสีเป็นพิกัดโลกไกลสุดของฉันเสมอเป็น 0,0,0 และดังนั้นรังสีของฉันไปจากการคลิกเมาส์ไปที่ศูนย์กลางของพื้นที่วัตถุมากกว่าผ่านมัน (พิกัด x และ y ใกล้และไกลเท่ากันพวกมันต่างกันเฉพาะในพิกัด z ซึ่งเป็นค่าลบของกันและกัน) GLint vp[4]; glGetIntegerv(GL_VIEWPORT,vp); matrix_t mv, p; glGetFloatv(GL_MODELVIEW_MATRIX,mv.f); glGetFloatv(GL_PROJECTION_MATRIX,p.f); const matrix_t inv = (mv*p).inverse(); const float unit_x = (2.0f*((float)(x-vp[0])/(vp[2]-vp[0])))-1.0f, unit_y = 1.0f-(2.0f*((float)(y-vp[1])/(vp[3]-vp[1]))); const vec_t near(vec_t(unit_x,unit_y,-1)*inv); const vec_t far(vec_t(unit_x,unit_y,1)*inv); ray = ray_t(near,far-near); ฉันทำอะไรผิด (คุณถอดจุดเมาส์ออกได้อย่างไร)

3
จะคำนวณพื้นที่ที่มีรูปร่างผิดปกติได้อย่างไร?
ฉันมีห้องวัตถุที่กำหนดโดยชุดของส่วนของเส้นที่วนลูปที่ฉันต้องคำนวณพื้นที่ คลาสสามารถอธิบายได้ดังต่อไปนี้ (ในรหัสเทียม): class Point { float x; float y; ... float distanceFrom(Point p); } class Segment { Point start; Point end; ... float length(); } class Room { List<Segment> walls; ... float area(); } ผนังของห้องไม่สามารถตัดกันได้ทุกที่ แต่ที่จุดสิ้นสุดของเซกเมนต์และ "sub-loops" ที่สร้างขึ้นจะถูกแยกออกเป็นห้องใหม่ การแก้ปัญหาไม่จำเป็นต้องแม่นยำอย่างสมบูรณ์ (ยอมรับข้อผิดพลาด 10%) และไม่คำนวณบ่อยมาก (<1 / s)

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

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