Zeichnen like a Boss

  • Schaut echt schön aus! :>
    Gleich mal Lesezeichen gesetzt.

    Habs am Smartphone ausprobiert, es funktioniert perfekt am Smartphone :D (Lappi ist derzeit außer Betrieb >.<)

    Mfg

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Wow das sieht echt toll aus. Wäre wirklich interessant mit AutoIt umzusetzen. Das stelle ich mir allerdings nicht ganz einfach vor.

    Gruss Shadowigor

  • Sculptris? Kenn ich nicht, und auch beim Überfliegen der seite Ähnelt dass stark einem CAD Programm, genaueres kann man erst sagen wen man damit gearbeitet hat.
    Aber bei solchen Dingen bleibe ich ganz ehrlich bei meinem CAD Programm, da kenn ich alles, weiss wie was wo und muss nicht noch lehrnen wie mit dem programm umzugehen ist ;)
    Ansonsten sieht das Programm sehr interessant aus, Danke für die info ohforf :thumbup:

  • Die Spielerei mit Sculptris oder Zbrush ähnelt eher dem Umgang mit Knetmasse.
    CAD ist eigentlich was gaaanz anderes. ;)

    Wer andern eine Bratwurst brät
    der hat ein Bratwurstbratgerät.

  • Hi,

    Zitat

    Wow das sieht echt toll aus. Wäre wirklich interessant mit AutoIt umzusetzen. Das stelle ich mir allerdings nicht ganz einfach vor.

    sieht mir anhand der Stützstellen nach B-Spline aus.
    Die Mausposition wird abgefragt, und an dieser Position werden einige Punkte erstellt, die sich auf zufälligen Bahnen vom Mauspunkt wegbewegen und irgendwann "sterben".
    Jetzt muss man nur noch von den "überlebenden" Punkten zufällig 4 auswählen und anhand dieser den B-spline erstellen. Einen oder zwei der "Überlebenden" nimmt man dann wieder als Startpunkt, welcher wiederum neue Punkte generiert, die sich vom Startpunkt wegbewegen....uswusf

    Kommt nicht ganz hin, aber so ähnlich....die GDI-Fuzzis machen da bestimmt noch ne Show draus^^

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;linke maustaste gedrückt halten zeichnet sich bewegende splines durch die vergangenen Mauspositionen
    ;rechte maustaste resettet den startpunkt

    [/autoit] [autoit][/autoit] [autoit]

    $anzahl = 7 ;anzahl der stützpunkte des splines

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $hGUI, $hWnd, $hGraphic, $aPoints[$anzahl + 1][2]
    Dim $x[$anzahl + 1], $y[$anzahl + 1]
    $aPoints[0][0] = $anzahl

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Erstellt eine GUI
    $hGUI = GUICreate("Paint Me :o)", 800, 800)
    $hWnd = WinGetHandle($hGUI)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    ; Zeichnet eine Spline
    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    Opt("MouseCoordMode", 0)

    [/autoit] [autoit][/autoit] [autoit]

    MouseMove(300, 300, 0)
    ;ursprung
    For $i = 1 To $anzahl ;mauskoordinaten in alle punkte des splines
    $x[$i] = MouseGetPos(0)
    $y[$i] = MouseGetPos(1)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $xalt = MouseGetPos(0)
    $yalt = MouseGetPos(1)

    [/autoit] [autoit][/autoit] [autoit]

    $col = 0xFF00FF00
    $down = 0
    $reset = 0

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $a = GUIGetMsg()
    If $a = -3 Then ExitLoop
    If $a = $GUI_EVENT_PRIMARYDOWN Then $down = 1;linke maustaste runter
    If $a = $GUI_EVENT_PRIMARYup Then $down = 0;linke maustaste hoch
    If $a = $GUI_EVENT_SECONDARYDOWN Then $reset = 1;rechte maustaste zum resetten

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $down Then ;linke maustaste gedrückt
    Sleep(10) ;verlängern !

    [/autoit] [autoit][/autoit] [autoit]

    If $reset = 1 Then ;resettet den startpunkt
    $reset = 0
    For $i = 1 To $anzahl
    $x[$i] = MouseGetPos(0)
    $y[$i] = MouseGetPos(1)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $xalt = MouseGetPos(0)
    $yalt = MouseGetPos(1)
    $col = 0xFF000000 + Random(0xFFFF, 0xFFFFFF, 1) ;neue farbe
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $xneu = MouseGetPos(0);neue mauskkordinaten
    $yneu = MouseGetPos(1)

    [/autoit] [autoit][/autoit] [autoit]

    If $xalt <> $xneu Or $yalt <> $yneu Then ;wenn mausposition geändert, neue mausposition in koordinaten einbauen
    $xalt = $xneu
    $yalt = $yneu
    For $i = 1 To $anzahl - 2
    $x[$i] = $x[$i + 1]
    $y[$i] = $y[$i + 1]
    $aPoints[$i][0] = $x[$i]
    $aPoints[$i][1] = $y[$i]
    Next
    $x[$anzahl - 1] = MouseGetPos(0) ;vorletzter punkt = mauskoordinaten
    $y[$anzahl - 1] = MouseGetPos(1)
    $x[$anzahl] = $x[1];letzter Punkt = erster Punkt = spline geschlossen
    $y[$anzahl] = $y[1]

    [/autoit] [autoit][/autoit] [autoit]

    $col = 0xFF000000 + Random(0xFFFF, 0xFFFFFF, 1) ;neue farbe
    $hpen = _GDIPlus_PenCreate($col)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $anzahl - 1;jede runde die koordinaten zufällig bewegen
    $v = Random(-10, 10, 1);2 richtungen vertikal
    $h = Random(-10, 10, 1);2 richtungen horizontal
    $x[$i] += $v
    $y[$i] += $h
    $aPoints[$i][0] = $x[$i]
    $aPoints[$i][1] = $y[$i]
    Next
    $aPoints[$anzahl][0] = $x[1] ;letzter punkt = erster punkt = spline geschlossen
    $aPoints[$anzahl][1] = $y[1]

    [/autoit] [autoit][/autoit] [autoit]

    $col += 100 ;farbe verändern
    $hpen = _GDIPlus_PenCreate($col)
    _GDIPlus_GraphicsDrawCurve($hGraphic, $aPoints, $hpen)

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Ressourcen freigeben
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()

    [/autoit]
  • Wer Lust und Zeit hat, kann diesen JS Code auseinander frimmeln und ihn nach AutoIt portieren:

    silk.js

    Spoiler anzeigen


    Stammt von http://new.weavesilk.com/ ;)

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    Einmal editiert, zuletzt von UEZ (9. Februar 2013 um 00:22)

  • jNizM: danke für den Link - sehr praktisch, da ich sehr viele JS Source Codes habe, die total unübersichtlich sind! :thumbup:

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Zitat

    sehr praktisch, da ich sehr viele JS Source Codes habe, die total unübersichtlich sind


    uhhhh, jetzt können wir uns auf etwas gefasst machen.... :thumbup:
    Btw, du hättest auch gleich den Link zu der 1024Byte-JS-Seite posten können