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

อาร์เรย์ 2 มิติของตัวเลขสัญลักษณ์หรือนิพจน์จัดเรียงเป็นแถวและคอลัมน์ แต่ละแถวต้องมีจำนวนคอลัมน์เท่ากัน ตัวเลขสัญลักษณ์หรือนิพจน์เรียกว่าองค์ประกอบหรือรายการ

1
ลดขนาดโครงตาข่าย 4D จินตนาการลงบนหน้าจอ
เป็นการออกกำลังกายทางจิตฉันพยายามจินตนาการการฉายตาข่าย 4 มิติบนหน้าจอ (2D) โดยพลการ ฉันเดาว่าสามเหลี่ยม 4D เดียวจะยังคงมีเพียง 3 คะแนน แต่ 3 คะแนนนั้นจะถูกกำหนดโดยคอลัมน์ที่มี 4 มิติ มันจะเหมาะสมกว่าหรือไม่ที่จะกำหนดเมทริกซ์การฉายภาพเพื่อแมปพื้นที่ 4D ไปยังพื้นที่ 3D ก่อนจากนั้นให้ OpenGL ทำการฉายภาพของตัวเองจากข้อมูลนั้นไปยังพื้นที่ 2D หรือจะเป็นการดีที่สุดถ้าคุณวางแผนที่จะฉายจาก 4 เป็น 2 โดยตรง ขอบคุณมาก.

3
วิธีรับการแปลจากมุมมองเมทริกซ์
ฉันจะดึงข้อมูลตำแหน่งโลกของกล้องจากเมทริกซ์มุมมองได้อย่างไร คำตอบเดียวที่ฉันเคยเห็นสำหรับคำถามนี้แนะนำให้แปลอยู่ในแถว / คอลัมน์สุดท้าย แต่สิ่งนี้จะไม่ทำงานเนื่องจากเมทริกซ์มี [x (dot) ขวา, y (dot) up, z (dot) look]
11 3d  mathematics  matrix 

1
พื้นที่หน้าจอสู่อวกาศโลก
ฉันกำลังเขียนเกม 2D ที่โลกของเกมของฉันมีแกนxวิ่งจากซ้ายไปขวาแกนyวิ่งจากบนลงล่างและแกนzออกจากหน้าจอ: ในขณะที่โลกของเกมของฉันอยู่บนลงล่างเกมจะแสดงผลในลักษณะเอียงเล็กน้อย: ฉันกำลังทำงานในการฉายจากอวกาศโลกไปยังพื้นที่หน้าจอและในทางกลับกัน ฉันมีงานเดิมดังนี้: var viewport = new Viewport(0, 0, this.ScreenWidth, this.ScreenHeight); var screenPoint = viewport.Project(worldPoint.NegateY(), this.ProjectionMatrix, this.ViewMatrix, this.WorldMatrix); NegateY()วิธีขยายไม่ตรงกับสิ่งที่ดูเหมือนตั้งแต่ XNA ของYแกนวิ่งล่างขึ้นบนแทนบนลงล่าง ภาพหน้าจอด้านบนแสดงว่าสิ่งนี้ทำงานได้ทั้งหมด โดยทั่วไปฉันมีหลายจุดในพื้นที่ 3 มิติที่ฉันแสดงในพื้นที่หน้าจอ ฉันสามารถแก้ไขคุณสมบัติกล้องแบบเรียลไทม์และดูว่ามันเคลื่อนไหวไปยังตำแหน่งใหม่ได้อย่างไร เห็นได้ชัดว่าเกมจริงของฉันจะใช้สไปรท์แทนที่จะเป็นจุดและตำแหน่งกล้องจะได้รับการแก้ไข แต่ฉันแค่พยายามทำให้คณิตศาสตร์ทั้งหมดเข้าที่ก่อนที่จะถึงสิ่งนั้น ตอนนี้ฉันพยายามที่จะแปลงกลับในทางอื่น นั่นคือกำหนดxและyในพื้นที่หน้าจอด้านบนกำหนดจุดที่สอดคล้องกันในพื้นที่โลก ดังนั้นถ้าฉันชี้เคอร์เซอร์ไปที่มุมล่างซ้ายของรูปสี่เหลี่ยมคางหมูสีเขียวฉันต้องการอ่านพื้นที่โลก (0, 480) Zประสานงานที่ไม่เกี่ยวข้อง หรือค่อนข้างพิกัดzจะเป็นศูนย์เสมอเมื่อทำแผนที่กลับสู่อวกาศโลก เป็นหลักฉันต้องการใช้ลายเซ็นวิธีการนี้: public Vector2 ScreenPointToWorld(Vector2 point) ฉันพยายามหลายสิ่งหลายอย่างเพื่อให้การทำงานนี้ แต่ฉันไม่มีโชค ความคิดล่าสุดของฉันคือฉันต้องโทรหาViewport.Unprojectสองครั้งด้วยค่าที่ใกล้เคียง / ไกลzคำนวณผลลัพธ์Ray, ทำให้เป็นมาตรฐานแล้วคำนวณจุดตัดของเครื่องหมายRayด้วยPlaneที่แสดงถึงระดับพื้นดินของโลก อย่างไรก็ตามฉันติดอยู่ในขั้นตอนสุดท้ายและไม่แน่ใจว่าฉันทำสิ่งที่ซับซ้อนเกินไปหรือไม่ …
10 xna  c#  matrix  projection  screen 

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

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 

1
gluLookAt ทำงานอย่างไร
จากความเข้าใจของฉัน gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); เทียบเท่ากับ: glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); แต่เมื่อฉันพิมพ์ModelViewเมทริกซ์การเรียกเพื่อglTranslatef()ดูเหมือนจะทำงานไม่ถูกต้อง นี่คือข้อมูลโค้ด: #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.