Frage zu Polygondarstellung durch einen String

tuxIt!

Cadet 3rd Year
Registriert
Sep. 2010
Beiträge
42
Hallo,

beim analysieren der Webanwendung Twiddla.com mit Wireshark bin ich auf folgenden String gestoßen, der öfters mal mit verschiedenen Parametern durch die Gegend geschoben wird (bzw. von Client zu Client):
drawCPolyLine(1345901, '0.2582504343764663', -19, 67, '#3624C5', 20, [99,10,100,10,136,15,171,16, ..., 10,39]);
Anscheinend repräsentiert dieser String das auf der Zeichenfläche gezeichnete. Also die Linie, die ich gezeichnet habe oder auch die Figur.

Meine Frage ist, wie man mit diesen Zahlen eine Linie oder eine Figur darstellt? Wie funktioniert diese Darstellung? Was geben die Zahlen an? Kann man mit dieser Darstellung jedes Polygon (also jede erdenkliche Form) darstellen?

Gruß,
tuxIt! :)
 
'#3624C5' : Die Farbe
20, : evtl die Dicke der Linie (pen)
[99,10,100,10,136,15,171,16, ..., 10,39 : wahrscheinlich ein int array, dass jeweils die x und y Koordinate angibt.

Der Rest könnte alles mögliche sein
 
'#3624C5' : Die Farbe
Hab ich auch erkannt :D

[99,10,100,10,136,15,171,16, ..., 10,39 : wahrscheinlich ein int array, dass jeweils die x und y Koordinate angibt.

Der Rest könnte alles mögliche sein
Was der Rest ist, ist ja egal. Da haben wir doch schon mal was.

D.h. wenn ich das richtig verstehe, wird beim Malen kein Bild erstellt und an die anderen geschickt, sondern es wird gespeichert, mit welchem Pinsel (Dicke und Typ) man welche Pixel berührt hat und dann wird das bei dem anderen Client vom Computer gemalt?
Somit bekommt man also die Synchronisation der Zeichnungen zwischen den Clients hin?

tuxIt!
 
20 könnte auch die Anzahl der Koordinatenelemente in der Liste sein - hätte man das ganze Codebeispiel gepostet, hätte man das vielleicht auch besser erkennen können. Ich gehe eher davon aus, dass die Fließkommazahl die Strichstärke ist.

Der erste Parameter könnte eine ID sein.
 
drawCPolyLine(1345901, '0.2582504343764663', -19, 67, '#3624C5', 20, [99,10,100,10,136,15,171,16,195,16,229,16,245,16,258,16,266,16,281,16,289,16,301,16,308,16,324,16,348,16,377,16,407,16,445,16,472,16,487,16,500,16,511,16,522,16,532,16,539,16,545,16,552,16,559,16,569,16,583,16,604,16,620,16,625,16,627,16,627,17,624,19,602,27,554,38,491,39,456,39,415,39,369,39,331,39,290,39,233,39,190,39,160,39,128,39,108,39,96,39,75,39,63,39,42,39,21,39,10,39]);
Hier das gesamte Codebeispiel. Ich dachte, wenn ich nur einen kleinen Teil poste verunstalte ich nicht das Forum :) Naja.
 
Na naheliegend sind abwechselnd x/y Koordinaten
Also quasi eine Reihe von Punkten
1,1
2,1
2,2
1,2
wäre dann ein Quadrat :-)
 
Ok, ich habe mal kurz mit dem HttpFox rumgespielt... (Tolles Plugin btw!)

Soweit ich das sagen kann:
drawCPolyLine(1345901, // vermutlich die User/SessionID des Zeichnenden (nicht sicher)
'0.2582504343764663', // keine Ahnung was das ist
-19, // x-Koordinate des Startpunktes auf der Zeichenfläche
67, // y-Koordinate des Startpunktes auf der Zeichenfläche
'#3624C5', // Farbe der Linie
20, // Dicke der Linie
[99,10,100,10,136,15,171,16, ..., 10,39]); // Punkte der Linie in Form x,y relativ zum Startpunkt

Vielleicht kommt ja noch jemand darauf, was es mit der Gleitkommazahl auf sich hat.
Evtl. ein Timer zwischen den sekündlichen Updates um die zeitliche Abfolge einzuhalten???

LG Ben

Nachtrag:
Nen Timer isses nicht. Komm nicht drauf, was es sein könnte...

Die x- und y-Koordinaten sind übrigens nicht der Startpunkt der Linie, sondern der gedachte 0,0 Punkt eines Rechteckes, was die gezeichnete Figur genau umfasst.
Hintergrund ist offenbar, dass die Koordinaten der Linie im Bezug auf den Startpunkt nur positiv sein dürfen!
Man denkt sich also ein Rechteck als konvexe Hülle um die Figur und nimmt die Koordinaten des Punktes oben links.
 
Zuletzt bearbeitet: (Nachtrag)
Zurück
Oben