Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Netski

Pages: [1]
1
German corner / Plane, Texture... Probleme.. Oder andere Idee?
« on: October 26, 2012, 04:07:23 pm »
Hallo!
Ich entwickel derzeit ein Teil für eine AR-Navigation, welche je nach Neigungswinkel (Handy im Horizontalen) nach vorne (also Kamera schaut auf den Boden (90°), oder gerade aus vom Benutzer weg: 0°) ein Kreis auf dem Bildschirm anzeigt.
Der Kreisradius definiert sich theoretisch aus: r(phi)=(90-x)/x - daraus ergibt sich: Bei phi=0 sieht man eine gerade Linie auf dem Bildschirm, bei phi=90 (blick nach unten) sieht man den gesamten Kreis.
Anders ausgedrückt: Man schwebt sozusagen in den Mittelpunkt des Kreises und schaut auf die Kreislinie oder man schwebt über den Kreis und sieht auf den gesamtem Kreis.

Soweit zur Thematik.
Nun zum Problem:
Meine erste Lösung wurde relativ gut mit Paint() gelöst. Kreis zeichnen usw. funktioniert super, sobald jedoch phi=0 wird, wird der Radius beliebig groß, was zu Ungenauigkeiten bei weiteren Berechnungen führt.
Vielleicht hat jemand dazu schon eine passende Lösung parat.

Mein zweiter Lösungsansatz: mit 3D-API
Da bin ich auf die JPCT Api gestoßen und konnte alles recht einfach implementieren. Problem jetzt: Ich kann kein Kreis zeichnen. Nach langem suchen im Forum / Google etc. bin ich auf Beiträge gestoßen wie "Plane machen und Textur eines Kreises drauf". Gut - Habe mir eine Textur gemacht bzw. einen Kreis 512x512 (bzw. beliebig 2^x*2^x) mit einem Roten Kreis drin der bis zu den Kanten des Images geht.

Erstelle mir eine Plane, weise die Textur zu und stelle fest, dass die Plane irgendwie immer nur einen kleineren Ausschnitt anzeigt (geschätzt schneidet die Plane die äußeren 10-20pixel des Bildrandes ab: also fügt er eine 490x490 pixel Datei ein..)

Code: (cube heißt nur noch cube, bedeutet aber natürlich nicht cube)
Code: [Select]
Texture texture = new Texture(BitmapHelper.rescale(
BitmapHelper.convert(parent.getResources().getDrawable(R.drawable.circle))
, 512,512));
TextureManager.getInstance().addTexture("circle", texture);
cube = Primitives.getPlane(1, 10);
cube.calcTextureWrapSpherical();
          cube.setTexture("circle");
...
7


Wäre super wenn mir jemand weiterhelfen kann. Vielleicht hab ich auch zweimal den falschen Lösungsansatz verwendet.
Danke!

Pages: [1]