Hallo Zusammen,
ich wollte einmal mein Projekt etwas aufhübschen und die Linen im Rect, Eclipse etc. pimpen. Aber das scheint schwerer zu sein als ich dachte!
Irgendwie finde ich dazu nicht wirklich etwas auf Google. Zwei Links habe ich nur gefunden, die das gleiche beschreiben, aber ich verstehe das irgendwie nicht. Mein Ziel ist es das alle Linien aussehen wie im Sketch Style:
http://www.wirify.com/wp/wp-content/upl ... iq-CNN.png
Hier sind die zwei Links die ich gefunden habe, aber wie gesagt ich kann damit irgendwie nicht wirklich was anfangen:
1 http://qt-project.org/forums/viewthread/14991/P15
2 http://qt-project.org/forums/viewthread/18048
Könnt Ihr mir das erklären, oder mir helfen, das zu verstehen. Habt ihr sonsonst noch irgendwo Stoff zu diesem Thema? Ich denke das sollte eigentlich in QT nicht das Problem sein, verschiedene Arten von Linien zu zeichnen.
Vielen Dank
Brush / QPen Sketch Style
-
der_burner
- Beiträge: 10
- Registriert: 28. Oktober 2013 17:21
Re: Brush / QPen Sketch Style
Hallo Zusammen,
hat keiner eine Idee?
Viele Grüße
hat keiner eine Idee?
Viele Grüße
Re: Brush / QPen Sketch Style
Es gibt anscheinend keine einfache Methode für dein Vorhaben.
In dem einen Thread wird beschrieben wie man es mit Pixmap bzw mit "Stempeln" realisieren kann,
in dem ein Brush in einer Schleife entlang eines Pfades gemalt/übermalt wird. Dies ist jedoch relativ Rechenintensiv.
Eine andere Methode wäre vielleicht mit Hilfe von OpenGL und einem Sketch-Render das gewünschte von der Grafikkarte übernehmen zu lassen.
Beides würde ich für eine einfache Anwendung jedoch nicht empfehlen.
In dem einen Thread wird beschrieben wie man es mit Pixmap bzw mit "Stempeln" realisieren kann,
in dem ein Brush in einer Schleife entlang eines Pfades gemalt/übermalt wird. Dies ist jedoch relativ Rechenintensiv.
Eine andere Methode wäre vielleicht mit Hilfe von OpenGL und einem Sketch-Render das gewünschte von der Grafikkarte übernehmen zu lassen.
Beides würde ich für eine einfache Anwendung jedoch nicht empfehlen.
-
der_burner
- Beiträge: 10
- Registriert: 28. Oktober 2013 17:21
Re: Brush / QPen Sketch Style
Vielen Dank für deine Antwort.
Ok, hatte jetzt nicht erwartet das so etwas so kompliziert ist.
Wenn ich mir das Beispielt http://www.mrdoob.com/projects/harmony/#ribbon ansehe, kann das sogar JavaScript recht flüssig.
Ok, dann muss ich mir da mal was ausdenken.
Ok, hatte jetzt nicht erwartet das so etwas so kompliziert ist.
Wenn ich mir das Beispielt http://www.mrdoob.com/projects/harmony/#ribbon ansehe, kann das sogar JavaScript recht flüssig.
Ok, dann muss ich mir da mal was ausdenken.
Re: Brush / QPen Sketch Style
Solange du drauf achtest das dass Zeichnen richtig gemacht wird, ggf mit einem Zwischenpuffer sollte das in Qt ohne Probleme gehen.
Auszug aus dem Code der Verlinkten Seite:
Auszug aus dem Code der Verlinkten Seite:
Da sieht man, dass jede Mausposition getrackt wird und mittels einer Schleife alle Punkte jedes mal durchlaufen werden und je nach Abstand zum aktuellen Punkt ggf weitere Linie in Richtung der Bereits gezeichneten gemalt werden.Code: Alles auswählen
sketchy.prototype = { context: null, prevMouseX: null, prevMouseY: null, points: null, count: null, init: function(a) { this.context = a; this.context.globalCompositeOperation = "source-over"; this.points = new Array(); this.count = 0 }, destroy: function() {}, strokeStart: function(b, a) { this.prevMouseX = b; this.prevMouseY = a }, stroke: function(f, c) { var e, b, a, g; this.points.push([f, c]); this.context.lineWidth = BRUSH_SIZE; this.context.strokeStyle = "rgba(" + COLOR[0] + ", " + COLOR[1] + ", " + COLOR[2] + ", " + 0.05 * BRUSH_PRESSURE + ")"; this.context.beginPath(); this.context.moveTo(this.prevMouseX, this.prevMouseY); this.context.lineTo(f, c); this.context.stroke(); for (e = 0; e < this.points.length; e++) { b = this.points[e][0] - this.points[this.count][0]; a = this.points[e][1] - this.points[this.count][1]; g = b * b + a * a; if (g < 4000 && Math.random() > (g / 2000)) { this.context.beginPath(); this.context.moveTo(this.points[this.count][0] + (b * 0.3), this.points[this.count][1] + (a * 0.3)); this.context.lineTo(this.points[e][0] - (b * 0.3), this.points[e][1] - (a * 0.3)); this.context.stroke() } } this.prevMouseX = f; this.prevMouseY = c; this.count++ }, strokeEnd: function() {} };
-
der_burner
- Beiträge: 10
- Registriert: 28. Oktober 2013 17:21
Re: Brush / QPen Sketch Style
Ja, ich dachte es wäre nur schön / leichter das über QBrush oder QPen zu lösen. Die Software "Krita" wird ja auch in QT geschrieben und dort sind solche Linien kein Problem. Ich habe mir auch den Quellcode schon gezogen und versucht dort etwas abzulesen, aber das war dann doch zu viel des guten. Da bin ich nicht mehr so einfach durch gestiegen