Los geht! Coding Workshop Nr. 1

  • Tagchen zusammen. Ich unterlasse es mal, meine Bildchen zu posten, da sie sich nur geringfügig von den euren Unterscheiden. Das ging aber flott!

    Eine Frage: Ist es möglich in einem NSView mehrere Bildebenen aufeinander zu legen, die dann separat voneinander gespeichert werden? Wenn ich beispielsweise ein Auswahlrechteck implementieren möchte, ist es ziemlich unsinngi, das ganze Fraktal jedesmal neu zu berechnen. Eine Möglichkeit wäre natürlich ein Bitmap für das Fraktal zu haben und dann einfach dieses Bitmap ins View zu drücken. Ich bin mir allerdings nicht sicher, ob der Ansatz über CGBitmapContextCreate(...) richtig ist. Hab keine Funktion gefunden, um diesen dann auf den Context des Views zu blitten.

    Marco
    -- Hell! I've lost my adrenalin pills!
  • @ponder:

    Nehm doch ein NSImage.
    Wenn du mit Bitmap hantieren willst, musst du dir eine NSBitmapImageRep machen, darin zeichnen und die einem frischen NSImage als Repräsentation zuordnen ... in der View zeichnest du dann nur das NSImage ... ok, ich halt mal den Mund und schau, dass ich selber was zustande bring ... gruessli
  • Ist dir das noch nicht aufgefallen? $IRGENDWELCHE programmieren eine Applikation, deren Source es schon 2349872983478-mal im Netz gibt, dann wird das verglichen, was in etwa auch mit Google ging um dann am Ende etwas gelernt zu haben, was man garantiert nie wieder braucht.

    Das wird eine wirklich sinnvolle Veranstaltung!
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Original von Tom9811
    Ist dir das noch nicht aufgefallen? $IRGENDWELCHE programmieren eine Applikation, deren Source es schon 2349872983478-mal im Netz gibt, dann wird das verglichen, was in etwa auch mit Google ging um dann am Ende etwas gelernt zu haben, was man garantiert nie wieder braucht.

    Das wird eine wirklich sinnvolle Veranstaltung!


    Wenn es dir nicht passt, dann mach doch einfach nicht mit und störe die, die es gut finden nicht mit arroganten, abwertenden Kommentaren. Wir wissen schon lange, dass du was besseres bist.
  • Kommen wir mal auf das Thema zurück. Also, ich würde gerne long double als Datentyp für die Komplexen Zahlen verwenden. Das Problem ist, dass der Compiler mir eine Warnung ausspuckt, und zwar von wegen, dass sich der Datentyp long double in nächster Zeit mal ändern wird, was mir allerdings ziemlich egal ist.
    Um diese Warnung loszuwerden, solle ich doch beim compilieren als Attribut -Wno-long angeben. Schön und gut, wenn ich im Terminal compilieren würde, was ich nicht tue. Wie kann ich diese Option in den Compilier-Einstellungen bei meinem Xcode-Projekt eingeben, um die Warnung los zu werden?

    PS: @Tom: Das ist nicht richtig so. Ich habe schon irre viel gelernt, ohne das der Code besprochen wurde. Von den standard Zeichenmethoden mit BezierPath oder NSRectFill bis zu Quartz, und jetzt direkt in eine NSBitmapImageRep bin ich schon gekommen, Zeitersparniss von 2-3 Sekunden. Das ist enorm und ich konnte das vorher noch nicht.
    Allerdings gebe ich dir insofern recht, dass es nicht viel mit Cocoa und Speicherverwaltung zu tun hat, ein Image-Browser wäre in dieser Beziehung besser gewesen, allerdings hat die Mehrheit für Mandelbrot gestimmt, also wird das implementiert. Das nächste mal kann man ja eventuell auf einen Image-Browser oder so gehen.
    There are 10 kinds of people in the world - those who understand binary
    and those who don't.
  • Original von Squart
    Wie kann ich diese Option in den Compilier-Einstellungen bei meinem Xcode-Projekt eingeben, um ...?


    Ganz einfach:

    1.) Dein Target auswählen und dazu das Infofenster öffnen.
    2.) Styles (Settings? Hab' Xcode gerade nicht vor mir) auswählen
    3.) Unter 'Other Compiler Flags' Deinen Eintrag machen

    t.
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • Original von tsunamix
    Original von Squart
    Wie kann ich diese Option in den Compilier-Einstellungen bei meinem Xcode-Projekt eingeben, um ...?


    Ganz einfach:

    1.) Dein Target auswählen und dazu das Infofenster öffnen.
    2.) Styles (Settings? Hab' Xcode gerade nicht vor mir) auswählen
    3.) Unter 'Other Compiler Flags' Deinen Eintrag machen

    t.
    Danke, da hatte ich noch nicht geschaut, aber ich bekomme es leider auch dort nicht hin. Other Compiler Flags gibt es nicht, nur Other C Flags und Other C++ Flags. Nun gut, habe ich einfach mal bei C Flags eingesetzt, bekomme aber immer Fehlermeldungen. Ich habe es sowohl -Wno-long, -Wno-long-, Wno-long und Wno-long- probiert. Es funktioniert aber leider nicht.
    There are 10 kinds of people in the world - those who understand binary
    and those who don't.
  • Original von Squart
    Danke, da hatte ich noch nicht geschaut, aber ich bekomme es leider auch dort nicht hin. Other Compiler Flags gibt es nicht, nur Other C Flags und Other C++ Flags. Nun gut, habe ich einfach mal bei C Flags eingesetzt, bekomme aber immer Fehlermeldungen. Ich habe es sowohl -Wno-long, -Wno-long-, Wno-long und Wno-long- probiert. Es funktioniert aber leider nicht.


    ähh, sorry... müßte Other Warning Flags sein. Versuchs mal an der Stelle.

    t.

    PS: Wieso eigentlich unbedingt long double?
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • Ich mache ja auch nicht mit.

    Mein KOmmentar war auch nicht arrogant oder abwertend. Er brachte schlicht zum Ausdruck, dass _dieses_ _Projekt_ doch offenbar niemanden etwas Dauerhaftes bringt. Es war übrigens eine zustimmende Antowrt auf belows (?) Beitrag.

    Ich bin auch nichts Besseres, nehme es aber zur Kenntnis, dass du mich dafür hältst.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Original von tsunamix
    ähh, sorry... müßte Other Warning Flags sein. Versuchs mal an der Stelle.

    t.
    Tja, da funktioniert es leider auch nicht. Fehlermeldung: cannot specify -o with -c or -S multiple compilations.
    Original von tsunamixPS: Wieso eigentlich unbedingt long double?
    Gute Frage, eigentlich um möglichst genau sein zu können, aber ich sehe gerade, dass ich das nicht wirklich brauche.

    Viele Dank.
    There are 10 kinds of people in the world - those who understand binary
    and those who don't.
  • @ tom9811
    Da stimme ich Dir NICHT zu. Zugegeben ist das Projekt nicht sinnvoll um später eine benutzbares Programm zu haben, aber:
    1. Gerade am Apfelmänchen kann man eine Menge an numerischen Gemeinheiten lernen und am eigenen Computer erfahren.
    2. Kein Programm, auch wenn es noch so doof ist hat man (besonders als Anfänger ) umsonst geschrieben.
    3. Jeder kann vom Anderen was lernen, KEIN Programmierer ist Allmächtig, ausser Linus Towards :)

    Dabei gibt es einem ein tolles Gefühl wenn man mal sowas selber gemacht hat und seine Kumpels die doch recht netten Fraktale zeigen kann.

    Gruß Sascha
    #include <bier.h>
  • 1. Gerade am Apfelmänchen kann man eine Menge an numerischen Gemeinheiten lernen und am eigenen Computer erfahren.

    Stimmt. Dazu bedarf es bloß keines Coding-Workshops.
    2. Kein Programm, auch wenn es noch so doof ist hat man (besonders als Anfänger ) umsonst geschrieben.

    Stimmt. Dazu bedarf es bloß keines Coding-Workshops.
    3. Jeder kann vom Anderen was lernen, KEIN Programmierer ist Allmächtig

    Stimmt. Etwas anderes habe ich auch nicht behauptet.
    ausser Linus Towards

    Ich glaube nicht, dass Linux ein besonders ausgekochtes Stück Software ist. Aber den Fleiß bewundere ich.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Ich habe lediglich below zugestimmt.

    +++Updatet+++
    below schrieb
    Und das soll dann ein Workshop sein, wenn einfach mehrere Leute getrennt an der selben Applikation basteln?

    Das ist ja - mit allem Respekt - totaler Blödsinn.

    Ich schrieb:
    st dir das noch nicht aufgefallen? $IRGENDWELCHE programmieren eine Applikation, deren Source es schon 2349872983478-mal im Netz gibt, dann wird das verglichen, was in etwa auch mit Google ging um dann am Ende etwas gelernt zu haben, was man garantiert nie wieder braucht.

    Das wird eine wirklich sinnvolle Veranstaltung!

    Darauf beleidigte MAX:
    Wenn es dir nicht passt, dann mach doch einfach nicht mit und störe die, die es gut finden nicht mit arroganten, abwertenden Kommentaren. Wir wissen schon lange, dass du was besseres bist.

    Ich kann wirklich nicht erkennen, dass ich mich daneben benommen hätte. Aber vllt kann mir das erklärt werden. Und übrigens bin ich wahrlich nicht der einzige, der diesen Workshop (der gar keiner ist) für blödsinnig hält.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Nur so ein kleiner Mathematischer Tip:
    Die Mandelbrot Menge (Apfelmaennchen) ist zur Reellen Achse (x-Achse) Symmetrisch.
    -> nur die positiven imaginaeren Teil rechnen und die Pixel spiegeln! Geht doppelt so schnell OHNE etwas besonderes gemacht zu haben.
    #include <bier.h>
  • Original von M.A.X
    Diese hohe Genauigkeit der Zahlen ist auch insofern nicht sinnvoll, da die C-Funktionen (exp, ...) höchstens mit doubles arbeiten und es genauer demnach nur schlecht geht...


    Gerade die länge deiner Zahl bestimmt wie tief du in die Menge hinein "zoomen" kannst.
    Dazu kommt dass du keine einzige c mathe funktion brauchst (schon gar kein exp).
    Nur +-*/ und wenn du besonders hart bist machst du alles nur mit Integern (bzw. long ints) und ersetzt das * und / durch links und rechts shifts. Das geht etwas flotter als flops (ausser du machst das ganz vektoriell mit AltiVec).

    Gruß Sascha
    #include <bier.h>
  • Original von Munxar
    Nur so ein kleiner Mathematischer Tip:
    Die Mandelbrot Menge (Apfelmaennchen) ist zur Reellen Achse (x-Achse) Symmetrisch.
    -> nur die positiven imaginaeren Teil rechnen und die Pixel spiegeln! Geht doppelt so schnell OHNE etwas besonderes gemacht zu haben.


    Ja, schneller ist es so sicher. Man bedenke: Die Mandelbrotmenge beschränkt sich aber nicht nur auf Bilder dem Koordinatenusprung als Mittelpunkt, sondern kann ein beliebiger Ausschnitt aus der Zahlenebene sein.
    -- Hell! I've lost my adrenalin pills!