Main Menu
Menu

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.

Show posts Menu

Messages - fosb

#1
Hi,


ich verstehe die Skalierung bei den Primitives nicht so wirklich:

In welcher Einheit findet die Skalierung statt?
Wie muss ich mir das vorstellen?

Wenn ich eine  Sphere erstelle
und einen (flachen) Zylinder - also eine Scheibe - um den gleichen Punkt
per


Object3D sphere = Primitives.getSphere(15, 0.5f);
sphere.setOrigin(new SimpleVector(100, 0, 0));

Object3D cylinder = Primitives.getCylinder(20, 1f, 0);
cylinder.setOrigin(new SimpleVector(100, 0, 0));



Dann habe ich eine Kugel mit einem Radius und eine Scheibe mit dem doppelten Radius.

Aber in welcher Einheit findet das ganze statt?


Mein Problem ist:

Ich habe vor in meine World Kugeln als Planeten random einzufügen.
Ich möchte sie so einfügen, dass ein bestimmter Radius um den Planeten
frei bleibt.
Da das Ganze auf einer 2D Ebene stattfinden soll, wollte ich das machen mit der Formel

( xQ - xP )² + ( yQ - yP )² <= r²


Für P ( xP| yP ) als Mittelpunkt und Q ( xQ | yQ ) als zu untersuchender Punkt.
(Wenn das Ergebnis der linken Seite <= r² ist, ist der Punkt auf der Kreisscheibe. )


Um das ganze mal visuell sehen zu können habe ich testweise die 'Scheibe' in meine World eingefügt,
um dann zu entscheiden wie groß eigentlich der freie Radius um den Planeten sein soll.


Aber wie groß ist der Radius und welche Einheit hat er?

Ich hoffe mir kann jemand helfen damit und das die Frage halbwegs verständlich ist.

Danke und Gruß

fosb

#2
okay,


erstmal vielen Dank für deine Hilfe,
ich werd mich da dran setzen und ausprobieren,
wenn ich ein (gutes) Resultat habe gebe ich nochmal Rückmeldung,
kann allerdings dauern, viel zu viele Baustellen ^^


Danke nochmals

fosb
#3
Genau,

Plane hinter Gitter.
Geplant sind Planeten die ihren Mittelpunkt im Grid haben und dieses dann teilweise überlagern,
außerdem Raumschiffe, Asteroiden darüber...
Und vielleicht auch Linien, die angeben wo sich die Objekte hinbewegen (wenn das einigermaßen hinhaut mit den Linien).

ja und vielleicht auch noch fliegende Pferde - who knows,
oder eine Schildkröte mit 4-5 Elefanten auf ihrem Rücken, die wiederum eine Scheibenwelt tragen ^^


#4
Ich habe jetzt mal ein paar Bilder gemacht als Beispiele (handelt sich hierbei nur um Ausschnitte):

sieht gut aus:
http://img694.imageshack.us/i/exampl1.jpg/

weiter "herausgezoomt", sieht schon nicht mehr so gut aus,
die etwas dikeren "Linien" kreuzen sich in der Mitte des Screens:
http://img851.imageshack.us/i/exampl2.jpg/

noch weiter "herausgezoomt", jetzt fehlen "Linien":
http://img851.imageshack.us/i/exampl3.jpg/

dann mit einem anderen Blickwinkel:
http://img848.imageshack.us/f/exampl4.jpg/

und ein letztes Beispiel:
http://img3.imageshack.us/i/exampl5.jpg/


Gibt es da irgendwelche Tipps wie man sonst so ein Gitter besser zeichnen
oder das Problem lösen kann?
#5
German corner / Re: Linie auf Y-Achse nicht sichtbar
March 09, 2011, 10:51:00 PM
Mir ist dazu noch mehr eingefallen,

ich habe "Linien" aus dem Grund des oben genannten Problems so gezeichnet:

cylinder = Primitives.getCylinder(2, 0.1f, 100000f);

Ich habe da aber sehr starke Probleme mit alaising (hoffe ich verwende den Begriff richtig).

Die Linien (in einem Gitter angeordnet) werden je nachdem wie nahe dran oder weit entfernt ich bin - oder/und in  in
welchem Winkel ich sie betrachte nicht oder gestört angezeigt..

Kann man so etwas beheben?
Bzw. wie zeichne ich ein Grid richtig, das es egal wie ich zoome gut angezeigt wird?


#6
Noch eine Frage:

Wenn aus diesem Topic
http://www.jpct.net/forum2/index.php/topic,1091.0.html

diesen Code

public Object3D createLine3D(SimpleVector from, SimpleVector to)
{
Object3D object=new Object3D(4);

SimpleVector delta=to.calcSub(from);
SimpleVector zaxis=delta.getRotationMatrix().getZAxis();
zaxis=zaxis.normalize();
zaxis.rotateY(1.571f);
SimpleVector from1=new SimpleVector(from);
from1.add(zaxis);
SimpleVector to1=new SimpleVector(to);
to1.add(zaxis);
object.addTriangle(from, 0, 0, from1, 0, 1, to1, 1, 1);
object.addTriangle(to1,1,1,to,1,0,from,0,0);
from1=new SimpleVector(from);
from1.y-=2f;
to1=new SimpleVector(to);
to1.y-=1f;
object.addTriangle(from, 0, 0, from1, 0, 1, to1, 1, 1);
object.addTriangle(to1,1,1,to,1,0,from,0,0);
object.build();
object.setCulling(Object3D.CULLING_DISABLED);
return object;
}


benutzte um eine Linie auf der Y-Achse zu zeichnen, ist diese nicht sichtbar.
(Wenn ich die Linie leicht schräg zeichne, z.B. den Anfang und das Ende auf der x-Achse leicht versetzt wird die Linie gestrichelt dargestellt)

Woran liegt das und kann ich das Problem beheben?


Danke nochmals
#7
wow,

das ging schnell, :)

Danke!!!
#8
Hi,

ich bin noch ziemlich neu und am Anfang mit jpct,
sowie im Grafikbereich...

Mich würde Interessieren ob ich Object3D Objekte zu einem Objekt zusammenfügen kann,
so dass ich in einer Methode mehrere Object3Ds erzeugen und als ein Objekt3D zurückgeben kann.


Vielen Dank

fosb
#9
Support / Re: How to draw a line...
February 27, 2011, 02:08:10 PM
Hi,

is there a problem if i draw many cylinders like that:


cylinder = Primitives.getCylinder(2, 0.1f, 100000f);


to get many lines in that way (like, to draw a grid)?


thanks