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

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

2
คุณคำนวณได้อย่างไรว่ามี 2 บรรทัดหันหน้าไปทางหรือออกไป?
เมื่อได้รับ 4 คะแนนที่อธิบายถึง 2 ส่วนของเส้นคุณจะคำนวณได้อย่างไรว่าเส้น A ไปทางหรือออกจากบรรทัด B เส้น 2 เส้นมีความยาวคงที่และสามารถวัดระยะทางจาก x1 / y1 ถึง x2 / y2

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

3
การสร้างแผนที่แบบสุ่ม - กลยุทธ์สำหรับการกระจาย / การรวมโหนดแบบสุ่ม
ฉันกำลังเล่นเกมกลยุทธ์ 4X ง่ายๆในอวกาศที่แต่ละโหนดเป็นจุดสนใจ (ดาวเคราะห์ดาวเคราะห์น้อยและอื่น ๆ ) ในการสร้างแผนที่แบบสุ่มฉันจะทำตามขั้นตอนด้านล่าง ตัดสินใจว่าจะมีกี่โหนดในแต่ละแผนที่ (อาจจะบอกว่ามีดาวเคราะห์คล้ายโลก 5 ดวงหรือดาวเคราะห์ที่แห้งแล้ง 10 ดวงเป็นต้น) วางแต่ละโหนดบนแผนที่ สำหรับขั้นตอนที่ 2 ฉันต้องการที่จะมีการแพร่กระจายของแต่ละโหนดประเภท ตัวอย่างเช่นฉันจะเริ่มต้นด้วยการวางดาวเคราะห์คล้ายโลกทั้งหมด ถ้าฉันทำแรนด์ (map.width, map.height) เพื่อกำหนดตำแหน่งฉันอาจจะรวมดาวเคราะห์คล้ายโลกทั้งหมดเข้าด้วยกันซึ่งจะให้ประโยชน์กับผู้เล่นที่เริ่มต้นในพื้นที่นั้น มีวิธีการใดบ้างเช่นการใช้ฟังก์ชั่นกราฟที่แตกต่างกันหรือฟังก์ชั่นเสียงรบกวนซึ่งสามารถสร้างลำดับของ (x, y) พิกัดซึ่งกระจายออกจากกัน มีวิธีใดบ้างในการสร้างพิกัดที่ใกล้เคียงกัน?

1
การเพิ่มการลากอากาศไปยังสมการวิถีลูกกอล์ฟ
ฉันกำลังพัฒนาเกมกอล์ฟ 2 มิติใน VB.NET 2005 แต่ฉันติดอยู่กับวิธีการนำอากาศหรือแรงลมที่น่าจะกระทบลูก ฉันมีสมการเหล่านี้สำหรับกระสุนแล้ว: v0v0v_0สำหรับความเร็วเริ่มต้นของลูกกอล์ฟเมื่อถูกยิงหรือยิง ส่วนประกอบแนวตั้งและแนวนอนความเร็วของลูกกอล์ฟ: vxvy=v0cos(θ)=v0sin(θ)−gt∗vx=v0cos(θ)vy=v0sin(θ)−gt∗ \begin{align} v_x &= v_0 cos(\theta) \\ v_y &= v_0 sin(\theta) - gt* \end{align} ระยะทางแนวตั้งและแนวนอนของลูกกอล์ฟ: xy=v0cos(θ)t=v0sin(θ)t−(0.5)gt2x=v0cos(θ)ty=v0sin(θ)t−(0.5)gt2 \begin{align} x &= v_0cos(\theta)t \\ y &= v_0sin(\theta) t - (0.5)gt^2 \end{align} ฉันจะเพิ่มการลากอากาศในสมการนี้เพื่อส่งผลกระทบต่อความเร็วของลูกกอล์ฟได้อย่างไร ฉันไม่รู้ว่าจะทำยังไงมีใครเคยทำงานกับสมการที่คล้ายกันไหม

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

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
ขีปนาวุธที่มีเวลาคงที่
ฉันกำลังสร้างเกมกับผู้เล่นและอาวุธ ฉันต้องการยิงขีปนาวุธจาก P1 ถึง P2 ขีปนาวุธควรใช้เวลา 5 วินาทีในการเข้าถึง P2 ขีปนาวุธควรติดตาม P2 ด้วย ถ้า P2 เคลื่อนที่ไปไกลกว่านั้นขีปนาวุธจะต้องเร่งความเร็วขึ้นเพื่อสนองข้อ จำกัด ด้านเวลา หาก P2 เคลื่อนที่ไปทางซ้ายขีปนาวุธต้องเลื่อนไปทางซ้าย (และเปลี่ยนความเร็วเช่นกัน) ถ้า P2 เคลื่อนที่เข้าใกล้ P1 มากขึ้นขีปนาวุธจะต้องชะลอความเร็ว เป็นไปได้ไหม วิธีที่ดีที่สุดในการทำสิ่งนี้ให้สำเร็จคืออะไร? ขณะนี้ฉันไม่มีคลาส Vector2D (นี่ไม่ใช่เกมจริง แต่การเปรียบเทียบนั้นใช้งานได้ดี) ดังนั้นถ้าเป็นไปได้ฉันต้องการโซลูชันที่ไม่ต้องการ แก้ไข:นี่ไม่ใช่ขีปนาวุธจริง ๆ เช่นกัน :) ขอบคุณ!

2
บางคนสามารถอธิบายการแสดงเส้นโค้งคู่ได้หรือไม่
ฉันพยายามทำความเข้าใจกับการเรนเดอร์ voxel และมองดู contouring คู่ (DC) จนถึงตอนนี้ฉันเข้าใจสิ่งนี้มาก: ใช้ฟังก์ชั่นความหนาแน่นสำหรับชุดของจุดกริด (เช่นฟังก์ชั่นสัญญาณรบกวน) ค้นหาว่าขอบใดใน gird มีการเปลี่ยนแปลงระหว่างจุดสิ้นสุด จากขอบเหล่านี้จะสร้างจุดตัด (เช่นเวกเตอร์) ตอนนี้ที่นี่คือที่ที่ฉันติดอยู่ต่อไปจะสร้างบรรทัดฐาน แต่อย่างไร เมื่อดูที่หัวข้อนี้ภาพนี้ปกติจะหมดไป การทำวิจัยบ่งชี้ว่าบรรทัดฐานจะถูกสร้างขึ้นจากหน้าตา ถูกต้องหรือไม่ที่จะคิดว่าฉันเปลี่ยนจากเสียงเป็น isosurface เป็นบรรทัดฐาน? ถ้าเป็นเช่นนั้นฉันจะสำเร็จแต่ละขั้นตอนได้อย่างไร เพื่อความเข้าใจของฉันขั้นตอนต่อไปจะเป็นดังต่อไปนี้จากกระดาษ DC ; สำหรับแต่ละขอบที่แสดงการเปลี่ยนแปลงเครื่องหมายให้สร้างรูปสี่เหลี่ยมที่เชื่อมต่อจุดลดขนาดของสี่ลูกบาศก์ที่มีขอบ คำพูดนี้แสดงด้วยภาพด้านบนหรือไม่? ในที่สุดขั้นตอนต่อไปคือการเรียกใช้ QEF ด้วยจุดตัดและบรรทัดฐานและสิ่งนี้จะสร้างข้อมูลจุดสูงสุดของฉัน ถูกต้องหรือไม่

1
การหมุนกล้อง 3D
ได้โปรดยกโทษให้ฉันด้วย แต่ฉันต้องการความช่วยเหลือและฉันติดอยู่กับเรื่องนี้มาสองสามสัปดาห์แล้วตอนนี้ฉันไม่มีความคืบหน้าและทุกที่ที่ฉันไปและฉันเห็นคำตอบที่ต่างออกไป ฉันมีเคล็ดลับและคำแนะนำเพียงพอตอนนี้ฉันแค่ต้องการใครสักคนที่จะให้คำตอบสำหรับฉันที่จะทำงานย้อนกลับจากเพราะฉันไม่เข้าใจ สิ่งที่ทำให้เรื่องนี้เกิดความสับสนมากที่สุดคือวิธีที่ทุกคนใช้ชุดของการประชุมหรือกฎระเบียบที่แตกต่างกันและคำตอบของพวกเขาขึ้นอยู่กับการประชุมของพวกเขาเอง ดังนั้นนี่คือชุดของการประชุมที่ฉันสร้างขึ้นตามสิ่งที่ดูเหมือนจะเป็นเรื่องธรรมดาและมีเหตุผลที่สุด: กฎมือขวาสำหรับแกน Positive Y เพิ่มขึ้น Positive Z กำลังเข้าหาผู้ชม Positive X อยู่ทางขวา Row Major matrixes, transposed เมื่อถูกส่งไปยังเฉดสี Pitch: การหมุนรอบแกน X Yaw: การหมุนรอบแกน y ม้วน: การหมุนเกี่ยวกับแกน z ลำดับการหมุน: หมุน, ระยะห่าง, Yaw (ถูกต้องไหมมีคนตรวจสอบฉันได้ไหม) ค่าการหมุนในเชิงบวกมองลงมาจากปลายบวกของแกนผลลัพธ์ในการหมุนตามเข็มนาฬิกา ทิศทางเริ่มต้นสำหรับการหมุน 0 ในทุกแกนคือเวกเตอร์ที่ชี้ไปที่ลบ Y .. ได้รับอนุสัญญาเหล่านั้น (โดยทั้งหมดแก้ไขฉันถ้าพวกเขาผิด!) วิธีหนึ่ง: เขียนฟังก์ชั่น LookAt หรือไม่ (lookAt (ตำแหน่งเวกเตอร์, เลนส์เวกเตอร์, เวกเตอร์ขึ้นไป)) …

3
Slerping กระจกหมุน
ฉันหมุนตัวละครเกมของฉันเพื่อดูที่เป้าหมายโดยใช้รหัสต่อไปนี้: transform.rotation = Quaternion.Slerp(startQuaternion, lookQuaternion, turningNormalizer*turningSpeed/10f) startQuaternion เป็นการหมุนปัจจุบันของตัวละครเมื่อกำหนดเป้าหมายใหม่ lookQuaternion เป็นทิศทางที่ตัวละครควรมองและมันก็เป็นแบบนี้: destinationVector = currentWaypoint.transform.position - transform.position; lookQuaternion = Quaternion.LookRotation(destinationVector, Vector3.up); TurningNormalizer เพิ่งTime.deltaTimeเพิ่มขึ้นและturningSpeedเป็นค่าคงที่ที่กำหนดในตัวแก้ไข ปัญหาคือในขณะที่ตัวละครเปลี่ยนตามที่ควรจะเป็นส่วนใหญ่มันมีปัญหาเมื่อมันต้องเข้าใกล้ 180 องศา จากนั้นในบางครั้งก็กระวนกระวายใจและสะท้อนการหมุน: ในภาพที่วาดไม่ดีตัวละคร (ด้านขวา) จะเริ่มหันไปทางวงกลมทางด้านซ้าย แทนที่จะแค่หมุนไปทางซ้ายหรือขวามันเริ่มต้น "mirror dance" นี้: มันเริ่มหมุนไปทางด้านหน้าใหม่ จากนั้นมันก็หันไปที่มุมเดียวกันทันที แต่อยู่อีกด้านหนึ่งและหมุนไปเรื่อย ๆ มันเป็นการ“ ทำมิเรอร์” นาน ๆ จนกว่ามันจะมองไปที่เป้าหมาย นี่คือสิ่งที่มี quaternions, slerping / lerping หรืออย่างอื่น? แก้ไข 1: เห็นได้ชัดว่าปัญหาไม่ได้เกิดจากการหมุนของตัวเอง …

2
การกำหนดเป้าหมายเสียงหึ่งๆ
ลองจินตนาการถึง "โดรน" และจุดเป้าหมายบนระนาบ 2d มีพารามิเตอร์ที่แปด: P = my position Q = target position V = my velocity I = my moment of inertia w = my angular velocity s = my angular position T = max thrust U = max torque (เราจะบอกว่าเป้าหมายคงที่) งานของโดรนคือการไปถึงเป้าหมายให้เร็วที่สุดเท่าที่จะทำได้โดยเชื่อฟังแรงบิดสูงสุดและแรงขับสูงสุด มีเพียงสองวิธีในการใช้แรงบิดเนื่องจากเป็นเพียงในระนาบ 2d แรงขับถูก จำกัด ให้ไปในทิศทางเดียวเท่านั้นเมื่อเทียบกับทิศทางของยานและไม่สามารถเล็งได้หากไม่มีการหมุนเสียงพึมพำ ละเลยความต้านทานใด ๆ …

5
เส้นตรงสามารถเรียกว่ารูปหลายเหลี่ยมได้หรือไม่?
ตามคำจำกัดความของรูปหลายเหลี่ยมถ้าจุดแรกและจุดสุดท้ายของเส้นเชื่อมต่อนั้นเรียกว่ารูปหลายเหลี่ยม ดูภาพด้านล่าง ฉันมี P1, .... P5 Polyline ถ้าฉันวาดเส้นจาก P5 ถึง P1 มันจะถูกเรียกว่ารูปหลายเหลี่ยมหรือไม่? ฉันสับสนที่นี่

2
ฟังก์ชั่นสำหรับการเคลื่อนไหวของดวงอาทิตย์?
ดังนั้นเมื่อสไปรต์ดวงอาทิตย์ถูกวางที่ขอบฟ้า (x = 0, y = worldheight / 2) ฉันพยายามคิดฟังก์ชั่นเพื่อทำให้ดวงอาทิตย์ขึ้นแล้วตก วิธีที่ดีที่สุดในการทำเช่นนี้คือฟังก์ชั่นบาป แต่ฉันไม่รู้ว่าจะใช้มันอย่างไร หากใช้ y = sin (x) ดังนั้น x จะต้องอยู่ในช่วงระหว่าง 0 ถึง pi สำหรับเส้นโค้งเต็มขณะที่มีความเร็วคงที่สำหรับ X ความคิดหรือข้อเสนอแนะ? แก้ไข: ขอบคุณครับ!

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

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