robsite

In grafik

Website von Gert Hohndorf

website-von-gert-hohndorf

Diverse lustige Visual Basic Programme. Musik malen und visualisieren, Psychotherapie, Fraktale, PI-Musik und praktische Tools von Hobbyprogrammierer Gert Hohndorf.

Noch dazu seine erste selbstgebaute Website. Erinnert mich an die Anfänge der Robsite, nur dass Gert mit bescheidenen 70 Jahren Webdesign, HTML, CSS und PHP in beeindruckend kürzerer Zeit gelernt hat als ich damals. Respekt, ich bin gespannt auf die nächsten Programme :)

/images/posts/0000/2950/GrafiCompo_big.JPG

/images/posts/0000/2956/FrakTale_big.JPG

· grafik, musik, tools ·

Raphaël—JavaScript Library

raphael—javascript-library

Neue JS-Library zum zeichnen und animieren von Vektor-Grafiken. Basiert auf SVG und VML für den Internet Explorer und funktioniert somit in allen modernen Browsern. Das morphen zwischen zwei Formen find ich besonders klasse.

· grafik, javascript, svg, webdev ·

Smooth path in canvas

Ich spiel grad mit rum und wollte eine Kurve möglichst fließend durch Punkte führen:

/images/posts/0000/2068/smooth_path_explanation_big.png

Viele Algorithmen laufen entweder nicht durch jeden Punkt oder setzen voraus, dass man die Pixel selbst malen will, was gerade bei Anti-Aliasing recht mühselig wird. Ich fand dann einen netten Algorithmus von Jean-Yves Quéinec, der Bézier-Splines so hinbiegt, dass eine durchgehende schöne Kurve entsteht. Manchmal gibts noch leicht merkwürdige Kurventeile aber insgesamt funktioniert es gut.

Der Code: smooth_path.js

Die Funktion bekommt ein Array von Punkten und erstellt einen Pfad, den man dann selbst malen kann.

  • path - Ein Punkte-Array der Form [{x:0, y:0}, {x:10, y:10}, ...]

  • smoothness - Der Grad der Biegung. 0 glättet nichts, 1.05 macht aus einem Quadrat einen Kreis und auch sonst schöne Kurven, alles andere erzeugt lustige Formen.

  • joinPath - Falls true werden die Kurven am Anfang und Ende des Pfades aufeinander ausgerichtet, sodass eine durchgehende Form entsteht, wenn Anfangs- und Endpunkt aufeinander liegen.

  • c - der canvas-Kontext

Wer Fehler findet oder Verbesserungen hat, immer her damit :)

Beispiel:

var canvas = document.getElementById('canvas');
var c = canvas.getContext('2d');
var path = [{x: 100, y: 100}, {x: 20, y: 150}, {x: 200, y: 200}, {x: 100, y: 100}];
var smoothness = 1.05;
var joinPath = true;
c.beginPath();
smoothPath(path, smoothness, joinPath, c);
c.stroke();
c.closePath();

Und eine kleine Demo. Per Maus die Punkte setzen, mit dem Slider die smoothness verändern.

· ©, canvas, grafik, javascript, jquery ·

Canvas Diagramme

Mit Flot und dem jQuery Visualize Plugin kann man schicke Graphen direkt in Browsern malen und manipulieren, die und JavaScript kennen. Mit excanvas auch im Internet Explorer.

Flot bekommt seine Daten direkt per JS und bietet interaktive Zoom- und Mousetracking-Features. jQuery Visualize holt sich die Daten direkt aus HTML-Tabellen.

/images/posts/0000/1966/Bild_53_big.png

/images/posts/0000/1972/Bild_52_big.png

· grafik, javascript ·