Die amorphe Welt des Julius H.
29 Juni 2008
25 Juni 2008
Bézierkurven 2
...ich meine mich ja daran erinnern zu können, irgendwann mal mit Vektorrechnung in Berührung gekommen zu sein: Für das 'Problem', aus der in SVG mit 'smooth curveto' angegebenen Kurve eine 'normale' zu bauen, stellt sich nun also die Frage nach dem Startpunkt und dessen Kontrollpunkt. Erstmal das Triviale: Der Startpunkt der zweiten Bézierkurve ist der Endpunkt der ersten, also der Punkt B (250,200) - man kann demnach als Daten für den Pfad statt d="M100,200 C100,100 320,80 250,200 S400,300 400,200" auch d="M100,200 C100,100 320,80 250,200 M 250,200 C x,y 400,300 400,200" angeben.
Es fehlen die Koordinaten (x,y) des gespiegelten Kontrollpunktes S2 (hier S2'), die sich aber (SVG macht das schließlich auch) recht einfach aus den Punkten S2 und B berechnen lassen: Zuerst 'bauen' wir uns den Richtungsvektor aus B-S2, also (250,200)-(320,80)=(-70,120), und gehen dann von B aus in diese Richtung zu unserem neuen Kontrollpunkt S2', also (x,y)=(250,200)+(-70,120)=(180,320). Der Kontrollpunkt für unseren Startpunkt B ist also S2' (180,320).
Die Daten für unsere zwei hintereinandergehängten Kurven sind also:
d="M100,200 C100,100 320,80 250,200 M 250,200 C 180,320 400,300 400,200"
Das Bild zeigt neben den Anfangs-, End- und Kontrollpunken (der berechnete Kontrollpunkt in blau) und den Tangenten die beiden Bézierkurven, in rot den Pfad mit 'smooth curveto', in schwarz den mit der Angabe von M, C und wieder M, C. Sieht fast so aus, als würde es stimmen - hoffen wir mal das Beste.
Bézierkurven 1
...mit SVG ist es sehr einfach, Bézierkurven auszugeben. Hiezu genügt es, im 'path data'-Attribut (d) des path-Tags (path) einen Startpunkt (mit dem Kommando M) und die Kontrollpunkte und den Endpunkt der gewünschten Kurve (mit C) anzugeben. Das Bild zeigt eine kubische Bézierkurve mit Startpunkt A (100,200), Endpunkt B (250,200) und den jeweiligen Kontrollpunkten S1 (100,100) und S2 (320,80). Mit diesen absoluten Koordinaten sieht das Data-Attribut für den Pfad dann so aus: d="M100,200 C100,100 320,80 250,200"
Danach ist die aktuelle Position zum Weiterzeichen der angegebene Endpunkt B (250,200).
Soll eine weiter Bézierkurve folgen, kann man diese einfach (mit S für 'smooth curveto') anschließen, indem man einen weiteren Kontroll- und einen Endpunkt angibt. Der angegebene Kontrollpunkt S3 (400,300) gehört zu dem angegebenen Endpunkt C (400,200), der 'fehlende' Kontrollpunkt für den Anfang der Kurve wird von SVG berechnet. Beim W3C steht dazu: "The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point." Die Pfaddaten für die beiden Bézierkurven sehen dann so aus:
d="M100,200 C100,100 320,80 250,200 S400,300 400,200"
Das ist, so wie es ist, erstmal recht elegant. 'Problematisch' wird es erst, wenn man aus diesem SVG die einzelnen Kurven der Pfade mit jeweils allen Koordinaten braucht.
19 Juni 2008
alt stadtfest
...ok, es ist mal wieder so weit: Dieses Wochenende bricht in Trier das Altstadtfest los. Für die Anwohner der Innenstadt bedeutete das in den letzten Jahren, sich vom mittäglichen Soundcheck bis zum nächtlichen Zapfenstreich quasi in Endlosschleife die worst-case-setlists der verschiedenen Coverbands anhören zu dürfen und sich erst dann zur Ruhe zu betten, wenn die betrunkenen Ausschankpendler auch ihre letzten Flaschen und Gläser zerschlagen haben.
Aber ich will gar nicht meckern, verspricht doch allein das Logo des Festes Interessantes: Schließlich erkennt man hinter den topographisch nicht ganz korrekt angeordneten trierer Denkmalen (Kran vor Porta vor Dom) eine rote Sonne. Darf man demnach auf einen göttlichen Wind, der die einfallenden Mongolen zurückschlägt, hoffen?
Das musikalische Programm soll dieses Jahr jedenfalls angeblich besser werden. Auf den ersten Blick über den Veranstaltungskalender habe ich sogar eine Band gefunden, die ich mir gerne anzuhören bereit bin: SwingerClub treten am Samstag (nach eigenen Angaben um 17 Uhr, die Stadt glaubt noch an 16 Uhr 30) an der Porta auf. Bleibt also doch auf ein Ausbleiben eines Kamikaze zu hoffen.
(Bild: Das im paintbrush-Stil angedeutete Logo des Trierer Altstadtfestes)
17 Juni 2008
Majestätsbeleidigung
Heute aus der Reihe "Dinge, die man irgendwo im Hinterkopf hat und Dank Internet in windeseile nachschlagen kann" der §90 StGB:
"Verunglimpfung des Bundespräsidenten
(1) Wer öffentlich, in einer Versammlung oder durch Verbreiten von Schriften (§ 11 Abs. 3) den Bundespräsidenten verunglimpft, wird mit Freiheitsstrafe von drei Monaten bis zu fünf Jahren bestraft."
Labels: Gesetzeswelt, Netz, notiert
16 Juni 2008
cellwriter
...ich bin begeistert. Vor ein paar Tagen habe ich die Software cellwriter entdeckt, die einzelne, in ein Kammfeld geschriebene Buchstaben (ich vermeide den Begriff Glyphe, da z.B. keine Ligaturen aufgelöst werden) den entsprechenden Charactern (Graphemen) im angegebenen und trainierten Zeichensatz zuordnen. Es geht also um Schriftzeichenerkennung. Die Software benutzt ein paar Algorithmen, die in einem beiliegenden Text erklärt werden und ist natürlich hauptsächlich zur Verwendung auf PDAs gedacht. Als freie Software auf diesem Gebiet kannte ich bislang nur STIHRS und die Bibliothek LipiTk, hatte beide jedoch noch nicht wirklich getestet.
Natürlich hoffe ich weiter auf eine (freie) Software zur Handschriftenerkennung - dieser im Weg stehen natürlich Segmentierungsprobleme (wie so oft).
Will man sich auf dem Gebiet weiter informieren, empfehle ich den Forschungsüberblick von Bianca Feldmann (PDF, auf dem Dokumentenserver der Uni Göttingen) und z.B. die Artikel und Vorträge, die rund um die ICDAR entstanden sind. Zur Handschriftenerkennung per HMM gab es dort einen wohl sehr interessanten Vortrag von G. Fink und T. Plotz (Uni Dortmund). Mit Handschriftenerkennung mittelalterlicher Texte und der Schreiberidentifikation anhand der Handschrift beschäftigt sich Marius Balacu (Uni Groningen).
Mit der Rechenleistung heutiger Rechner wird so einiges möglich, wovon ich damals, als ich den ersten Handheld-Scanner an einen 386er anschloß, nur träumen konnte und was demnächst die Textdigitalisierung und den täglichen Gebrauch des Rechners als Textverarbeitungsmaschine erleichtern wird - da freu ich mich jetzt schon drauf.
Labels: gesehen, line segmentation, Linguistik, Rechnerbastelei
15 Juni 2008
Nationalmannschaftsbundesligaspieler
Da nun schon die dritten EM-Vorrundenspiele anstehen, fragte ich mich, wie viele Protagonisten dieses Wettbewerbs uns wohl aus den deutschen Ligen bekannt sein müssten. Ich kam auf 57 Spieler (von insgesamt 368, also immerhin eine Quote von 15%), von denen die meisten natürlich für die deutsche Nationalelf auflaufen (19). Der ein oder andere hat bei deren Nominierung evtl. den Eindruck gewonnen, daß hier ein gutes Stück Vereinspolitik mit im Spiel ist, da die Anzahl der Spieler je Verein evtl. mit dessen Platzierung in der Bundesliga übereinzustimmt. Eine Korrelation (wenn überhaupt) ohne kausalen Zusammenhang, würde ich sagen - es wäre auch seltsam, spielten hauptsächlich Zweitligaspieler in der Elf:
Marcell Jansen - Bayern München
Miroslav Klose - Bayern München
Philipp Lahm - Bayern München
Lukas Podolski - Bayern München
Bastian Schweinsteiger - Bayern München
Tim Borowski - Werder Bremen
Torsten Frings - Werder Bremen
Clemens Fritz - Werder Bremen
Per Mertesacker - Werder Bremen
Kevin Kuranyi - FC Schalke 04
Heiko Westermann - FC Schalke 04
Mario Gomez - VfB Stuttgart
Thomas Hitzlsperger - VfB Stuttgart
René Adler - Bayer Leverkusen
Simon Rolfes - Bayer Leverkusen
Piotr Trochowski - Hamburger SV
Robert Enke - Hannover 96
Arne Friedrich - Hertha BSC
Oliver Neuville - Bor. M'gladbach
Für die Schweizer lief die Vorrunde leider eher suboptimal:
Tranquillo Barnetta - Bayer Leverkusen
Diego Benaglio - VfL Wolfsburg
Philipp Degen - Borussia Dortmund
Alexander Frei - Borussia Dortmund
Ludovic Magnin - VfB Stuttgart
Christoph Spycher - Eintracht Frankfurt
Die Kroaten dürfen gerne auch noch das dritte Vorrundenspiel gewinnen:
Ivan Klasnic - Werder Bremen
Robert Kovac - Borussia Dortmund
Ivica Olic - Hamburger SV
Mladen Petric - Borussia Dortmund
Ivan Rakitic - FC Schalke 04
Josip Simunic - Hertha BSC
Die Tschechen dürfen sich noch Hoffnungen auf das Viertelfinale machen:
Jaromir Blazek - 1. FC Nürnberg
Martin Fenin - Eintracht Frankfurt
Tomas Galásek - 1. FC Nürnberg
David Jarolim - Hamburger SV
Jan Koller - 1. FC Nürnberg
Rudolf Skacel - Hertha BSC
Für die Griechen wäre die Meisterschaft mit ihren jetzigen Vereinen wohl ähnlich unerreichbar wie die KO-Runde der EM:
Ioannis Amanatidis - Eintracht Frankfurt
Angelos Charisteas - 1. FC Nürnberg
Theofanis Gekas - Bayer Leverkusen
Sotirios Kyrgiakos - Eintracht Frankfurt
Nigel de Jong - Hamburger SV
Joris Mathijsen - Hamburger SV
Rafael van der Vaart - Hamburger SV
Portugal auch:
Hugo Almeida - Werder Bremen
Fernando Meira - VfB Stuttgart
Den Polen würde ein Sieg gegen Kroatien allein nicht reichen:
Jacek Krzynowek - VfL Wolfsburg
Lukasz Piszczek - Hertha BSC
Frankreich hofft wohl - neben dem eigenen - auf einen weiteren Sieg der Holländer:
Franck Ribéry - Bayern München
Willy Sagnol - Bayern München
Ebenso wie Italien:
Luca Toni - Bayern München
Die Türken müssten einfach nur die Tschechen schlagen - und wenn es auch zum Elfmeterschießen kommt:
Hamit Altintop - Bayern München
Der Wortschatz der Österreicher verengt sich inzwischen auf den Namen einer Stadt in Argentinien:
Martin Harnik - Werder Bremen
Wenn die Rumänen das Wunder vollbringen, die (eine der?) bislang beste(n) Mannschaft(n) dieses Turniers zu besiegen, kann ihnen keiner mehr den Einzug in die nächste Runde nehmen:
Ciprian Marica - VfB Stuttgart
Die Schweden sollten auch besser gewinnen:
Markus Rosenberg - Werder Bremen
Und die Russen müssen, da sie bei einem Unentschieden wegen der schlechteren Tordifferenz nach Hause fahren (oder?):
Ivan Saenko - 1. FC Nürnberg
So, ich hoffe, ich habe niemanden vergessen.
12 Juni 2008
Monsunwelle
...wer bisher noch gehofft hatte, die diesjährige 'Schafskälte' würde zur Abwechslung mal ausfallen (Wahrscheinlichkeit knapp über 10%), konnte sich anhand der Temperaturen der letzten Tage und spätestens bei der Wasserballbegegnung Schweiz vs. Türkei gestern Abend selbst davon überzeugen, daß sowohl an dem lateinischen Spruch "spes semper fallit" als auch an der überzeugenden Regelmäßigkeit dieser Wettererscheinung etwas dran sein muß: Nu isser wieder da, der kleine Monsun, der jahrjährlich so um den 11. Juni über Europa zieht. Kurzgefasst erklärt (in etwa so): Das Festland hat sich schneller erwärmt als das Meer, die warme Luft steigt über dem Land auf, die kalte sinkt über dem Meer ab. Der Druckunterschied (H-T) sorgt dann dafür, daß die kalte Luft vom Meer über das Festland zieht und hier für Kälte und Regen sorgt.
Da haben wir also dann den Salat: Steht für Deutschland ein Länderspiel um den 11. Juni an, lohnt es sich evtl., neben Mallorca auch auf den Färöer-Inseln ein Traininglager aufzuschlagen.
Nachtrag: OK, in Klagenfurt scheint es eher schwülwarm als schafskalt zu sein - würde das Spiel jedoch in den regnerisch-kalten Mittelgebirgen ausgetragen, könnte es kaum schlechter laufen.
10 Juni 2008
Einbürgerungstest
...ich will ja nicht prahlen (kann man ob der sehr einfachen Fragen wohl auch nicht), aber bei dem Quiz zum in D'land bald kommenden Einbürgerungstest auf tagesschau.de hab' ich ein 'großartiges' Ergebnis vorgelegt. Heißt das, daß ich jetzt Deutscher bleiben muß?
Labels: gesehen, Netz, notiert, Spielewelt
08 Juni 2008
OpenLigaDB
...vor zwei Jahren hatte ich zur WM noch vergeblich genau sowas gesucht: Einen Webservice, der mir die aktuellen Spielergebnisse liefert. Natürlich gab es tausende Liveticker im Netz, aber einen Dienst, von dem man die Daten ordentlich abfragen konnte, hatte ich nicht gefunden (oder es gab halt keinen). Deshalb lief hier damals zu jedem Spiel ein eigener kleiner Rechner, von dem ich die Spielstände abfragen konnte - der Stromzähler lief natürlich ständig mit. Inzwischen sind knapp zwei Jahre ins Land gegangen und nun gibt es endlich einen offenen Dienst mit den Daten, die ich brauche: OpenLigaDB (Liga-Kürzel 'fem08' für die EM-Daten). Klappt auch (noch?) super soweit.
In diesem Sinne herzlichen Dank an den Betreiber und die fleißigen Dateneinpfleger!
(Bild: Ausschnitt aus der formatierten Ausgabe der OpenLigaDB-Daten von der EM08)
Toller Plan
Hab ich die neue Nord-Süd-Querung der Innenstadt für Radfahrer jetzt eigentlich richtig verstanden? Wenn die Metzelstraße wieder frei ist, geht es über den Nikolaus-Koch-Platz zur Walramsneustraße und von dort über die Kutzbachstraße auf den Porta-Nigra-Platz? Es gilt dann weiterhin: Treviris und Simenstiftplatz (im Bild die grüne Strecke) bleiben für den Radverkehr tabu. Na prima. Statt sich also sicher die Spuren mit dem ÖPNV teilen zu dürfen, werden die Radler am Pferdemarkt mit dem Durchgangsverkehr konfrontiert (bzw. Rückstau Bruchhausenstaße und Rückstau Parkhaus) [gelber Kreis], stehen dann am Ende der Kutzbachstraße ewig an der Ampel und werden dann in die Touristengruppen auf den Porta-Nigra-Platz geschickt [blauer Kreis]. Prima Idee: Will man z.B. von der Wilhem-Rautenstrauch-Straße via Engelstraße zum Stadion (Eintracht!) radeln, wird man also nicht den naheliegenden kurzen Weg (grün) geschickt, sondern im Zickzack über Nebenstraßen (rot). Begründet wird die Entscheidung gegen die grüne Route wohl mit dem Nutzungskonflikt zwischen Fahrradfahrern und dem ÖPNV, der Konflikt zwischen Fahrrad und PKW (Bruchhausenstraße, Nordallee) bzw. Fahrrad und Fußgänger (Porta-Nigra) wird wohl als geringer eingeschätzt. Um es mal aus meiner Sicht auf den Punkt zu bringen: Die Fahrradwege nach diesem Konzept (ge)braucht kein Mensch. Typisch Trier.
Labels: Fahrradwelt, gesehen, Stadtwelt, Trier
03 Juni 2008
neues Hobby
...Zusammenhänge im Fernsehprogramm finden, die wahrscheinlich gar keine sind.
(Bild: Screenshotausschnitt TVBrowser)
Labels: Fernsehwelt, gesehen