# x und y Werte richtig festlegen



## tomovic (3. Aug 2014)

hallo,
ich steig da nicht richtig durch.
Woher weis ich die pos von den Ecken des TAblets?
verstelle den y Wert von Matrix.translateM dann ändert sich die x Wert ?
ändere ich Rota Werte, dann ändert sich auch der y Wert.

Kann mir jemand die Logig erklären?

Was muss ich machen, dass ich in Matrix.translateM Y  Werte reinschreibe, dass sich  nicht anders verschiebt?

Dann möchte ich X Werte ädern ohne dass sich der Y Werte sich verändert. Das sollte doch gehen oder?

Matrix.translateM <--Warum 2 mal?
[latex]

// Calculate position of the light. Rotate and then push into the distance.
        Matrix.setIdentityM(mLightModelMatrix, 0);
        Matrix.translateM(mLightModelMatrix, 0, 0.0f, 0.0f, 0.0f);      
        Matrix.rotateM(mLightModelMatrix, 0, 40, 1.0f, 1.0f, 0.0f);
        Matrix.translateM(mLightModelMatrix, 0, 100.0f,-8.0f, 0.0f);

        Matrix.multiplyMV(mLightPosInWorldSpace, 0, mLightModelMatrix, 0, mLightPosInModelSpace, 0);
        Matrix.multiplyMV(mLightPosInEyeSpace, 0, mViewMatrix, 0, mLightPosInWorldSpace, 0);

[/latex]


----------



## Network (3. Aug 2014)

Habe keine Ahnung was du genau willst.

1.) Welche Ecken des Tablets und warum sollen die in der Matrix stehen? Der ganze Bildschirm wird von der GPU in einem 2D Einheitskoordinatensystem dargestellt. Einer der Ecken ist also bei [1|1].

2.) Es gibt keinen X oder Y Wert in einer Matrix. Wo sollen die denn stehen?
Eine Matrix besteht aus X und Y Zeilen, die zusammengerechnet einen X bzw Y Wert ergeben in einem System dass von der Matrix definiert wird... das ist aber Matrizenrechnung - wird übrigens an Hochschulen gelehrt.

Das es sich bei Matrizen um "nur" um eine Darstellungsart von ein paar einfachen Zahlen handelt ist eine häufiger falsche Simplifizierung - wie du scheinbar bereits selbst gemerkt hast, verändert nähmlich translate( x, y ) nicht nur eine Zahl sondern eine ganze Reihe von Zahlen in deinem Matrizensystem.


Wozu brauchst du denn genau diese Matrizen? Willst du sie zusammen mit OGL ES verwenden? (Dann kann es dir ja egal sein, was in der Matrix steht)

Gruß
Net


----------



## tomovic (3. Aug 2014)

Nachtrag:

Viewer.java :

ich Ontouch hole ich die X pos und Y Pos Werte, was ich gerade angetippt habe.

Renderer.java :

Diese Werte werden in...

public static int x_pos_von_ontouch;
public static int y_pos_von_ontouch;

... gespeichert.

Dann soll den Punkt erscheinen, da wo ich gerade angetippt habe. Wie baue ich die Werte in...
Matrix.translateM(mLightModelMatrix, 0, 100.0f,-8.0f, 0.0f);
...ein.

Wie muss die Rota eingestellt werden?


----------



## dzim (4. Aug 2014)

Fragen will er ja wohl nicht beantworten, aber ich nehme an, er meint die Matrix-Klasse aus Android: Matrix | Android Developers
Allerdings gibt es da keine translateM-Methode.

Aber aus dem Rest werde ich nicht schlau. Ich weiss auch nicht, was hier eigentlich translated wird... Vielleicht sollte der TO mal hier etwas weniger wirres Zeug schreiben... Nur ein Vorschlag.


----------



## tomovic (21. Aug 2014)

habs mittlerweile selber hinbekommen.

Mein Problem war:
Ich habe die  OnTouch() Funktion mit der ich mit Hilfe mir X-Auflösung und Y-Auflösung Werte zuermitteln, wo ich getippt habe auf dem Android.
Die Opengl Linien arbeiten nicht mit einer  Auflösung, sondern mit Einheiten. Bei Opengl ist der 0 Punkt in der Mitte des Displays. X und Y Auflösung Null Punkte sind bei Andorid links oben. Die Lösung ist ein 3 Satz.


----------

