Ik ben bezig met het maken van een simpele 3d-omgeving, ik ben net begonnen dus er moet nog wat in:
bij de public void projectOnScreen zijn de internalXCamera en de internalYCamera vraamde getallen, het lijkt of er veel soorten getallen over elkaar heen gedrukt zijn, of het is 0
. Wat doe ik verkeerd?
[edit]
Sorry voor de ontbrekende informatie, ik heb alles extra geconverteerd naar integer, om een geheel getal over te houden. Bij gebrek aan inspiratie heb ik voor matrix gekozen, ik wist tijdelijk niks beters, en ik zal dat veranderen bij een beter alternatief.(Het is niet relevant voor de werking van de applet IMHO). Ik heb alle standaard dingen nagekeken, {} ; () enz. deze zijn correct. Maar om een of andere reden blijft de uitkomst van internalXCamera 0, net als van internalYCamera.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
| // 3D-engine import java.applet.*; import java.awt.*; public class ThreeD extends Applet { Camera C1 = new Camera(0,0,0); Matrix M1 = new Matrix(500,500,500); Matrix M2 = new Matrix(-500,500,500); Matrix M3 = new Matrix(500,-500,500); Matrix M4 = new Matrix(-500,-500,500); public void init() { setBackground(Color.white); } public void paint(Graphics g) { C1.projectOnScreen(g,M1); C1.projectOnScreen(g,M2); C1.projectOnScreen(g,M3); C1.projectOnScreen(g,M4); g.drawString("(" + M1.GetX() + "," + M1.GetY() + "," + M1.GetZ() + ")" , 40 , 40); g.drawString("(" + M2.GetX() + "," + M2.GetY() + "," + M2.GetZ() + ")" , 40 , 80); g.drawString("(" + M3.GetX() + "," + M3.GetY() + "," + M3.GetZ() + ")" , 40 , 120); g.drawString("(" + M4.GetX() + "," + M4.GetY() + "," + M4.GetZ() + ")" , 40 , 160); } /** Deze klasse is een blauwdruk voor de objecten die de punten binnen de 3-dimensionale matrix vormen */ class Matrix { private int xMatrix; private int yMatrix; private int zMatrix; public Matrix(int xMatrix,int yMatrix,int zMatrix) { this.xMatrix = xMatrix; this.yMatrix = yMatrix; this.zMatrix = zMatrix; } public int GetX() { return xMatrix; } public int GetY() { return yMatrix; } public int GetZ() { return zMatrix; } } /** Deze klasse is een blauwdruk voor de camerastandpunten binnen de 3-dimensionale matrix deze camera-standpunten zorgen voor output op het beeldscherm. */ class Camera { private int internalXCamera; private int internalYCamera; private final int xCamera; private final int yCamera; private final int zCamera; private final int screenDistance = 500; private final int[] screenCenter = {320, 240}; public Camera(int xCamera, int yCamera, int zCamera) { this.xCamera = xCamera; this.yCamera = yCamera; this.zCamera = zCamera; } public void projectOnScreen(Graphics g, Matrix m) { internalXCamera = (int)(screenDistance / (m.GetZ() * m.GetX())); internalYCamera = (int)(screenDistance / (m.GetZ() * m.GetY())); g.drawString(""+m.GetX(),40,180); g.drawString("(" + internalXCamera + "," + internalYCamera + ")" , 40 , 200); g.drawOval((int)(320+internalXCamera),(int)(240+internalYCamera),2,2); } } } |
bij de public void projectOnScreen zijn de internalXCamera en de internalYCamera vraamde getallen, het lijkt of er veel soorten getallen over elkaar heen gedrukt zijn, of het is 0
[edit]
Sorry voor de ontbrekende informatie, ik heb alles extra geconverteerd naar integer, om een geheel getal over te houden. Bij gebrek aan inspiratie heb ik voor matrix gekozen, ik wist tijdelijk niks beters, en ik zal dat veranderen bij een beter alternatief.(Het is niet relevant voor de werking van de applet IMHO). Ik heb alle standaard dingen nagekeken, {} ; () enz. deze zijn correct. Maar om een of andere reden blijft de uitkomst van internalXCamera 0, net als van internalYCamera.
[ Voor 13% gewijzigd door Verwijderd op 12-09-2003 21:32 ]