2D-Graph einer funktion in swift

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 2D-Graph einer funktion in swift

    Guten tag

    Ich möchte verschiedene graphen von funktionen in einem macOS fenster in swift programmieren aber ich weiss nicht wie ich es tun soll.

    Könnte jemand ein kleines swift-programm schreiben, das dieses graph darstellt ?

    grafico2.jpg


    Einfach zwei achsen, ein segment, ein schwarzes und ein rotes punkt in einem macOS-windows.

    Mit so einem beispiel könnte ich dann selbständig andere kompliziertere graphen programmieren.

    Vielen dank für alle antworten..
  • Ich hatte schon quartz 2D allein entdeckt, aber bin trotzdem nicht fähig ein macOS-windows mit punkten und linien zu zeichnen.

    Niemand könnte mir der obige beispiel konkret programmieren ? Ohne buttons und sonst, nur die graphische elementen...

    Meine graphen bestehen vorallem aus sehr viele punkten, die linien brauche ich vorallem für die achsen....
  • Google kennst Du?

    NSView Graph example -> knowstack.com/drawing-in-swift-cocoa/
    Xcode 4 sucks – „,Multiple exclamation marks‘, he went on, shaking his head, are a sure sign of a diseased mind.‘“ (Terry Pratchett 1992: Eric)

    "Wir ordnen und befehlen hiermit allen Ernstes, dass die Advocati wollene schwarze Mäntel, welche bis unter das Knie gehen, unserer Verordnung gemäß zu tragen haben, damit man die Spitzbuben schon von weitem erkennt." (Friedrich Wilhelm I., Soldatenkönig)
  • nussratte schrieb:

    warum sollte das jemand gratis machen?
    Insbesondere, weil dies ein Forum von Entwicklern für Entwickler ist, und keine Auftragsbörse ... zumindest meiner Meinung nach.

    Als Hilfe zur Selbsthilfe an @sergiozh
    • Erstelle Dir eine Subclass von NSView
    • Überschreiben deren drawInRect:-Methode
    • Hole Dir den entsprechenden CGContext und
    • Male innerhalb der Bounds Deiner View
    Dann kannst Du diese View ganz normal programmatisch oder im InterfaceBuilder verwenden.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • mika schrieb:

    Google kennst Du?

    NSView Graph example -> knowstack.com/drawing-in-swift-cocoa/

    Ich hatte gegoogolt aber hatte nicht gefunden was ich verstehe oder was ich brauche.

    Die seite die du mir linkst hatte ich schon allein gefunden und das beispiel mit dem fractal tree auch kompiliert aber ich hatte nicht verstanden wie es funktioniert.

    Man findet viele beispiele im web mit iOS und swift aber wenige mir macOS und swift.

    Hatte auch genau dei beispiel gesehen aber dann was mache ich mit den verschiedenen klassen aus deiner beispiel ? Wie kann ich diese klassen in einem fenster visualisieren ?

    Mit interfaceBuilder ich war fähig ein fenster mit zwei testfelder und ein button zu visualisieren und ein action fur da button zu verbinden so dass es etwas passiert wenn ich das button drucke aber das was alles was ich machen konnte.
  • nussratte schrieb:

    sergiozh schrieb:

    Niemand könnte mir der obige beispiel konkret programmieren ? Ohne buttons und sonst, nur die graphische elementen...
    warum sollte das jemand gratis machen?

    Es ist nicht üblich in foren nach geld zu fragen. Wenn du für meine aufgabe eine geldbelohnung möchtest, sage mir was du verlangst und du wirdst von mir dann eine antwort bekommen, wenn es für mich gut ist was du verlangst.
  • MyMattes schrieb:

    nussratte schrieb:

    warum sollte das jemand gratis machen?
    Insbesondere, weil dies ein Forum von Entwicklern für Entwickler ist, und keine Auftragsbörse ... zumindest meiner Meinung nach.
    Als Hilfe zur Selbsthilfe an @sergiozh
    • Erstelle Dir eine Subclass von NSView
    • Überschreiben deren drawInRect:-Methode
    • Hole Dir den entsprechenden CGContext und
    • Male innerhalb der Bounds Deiner View
    Dann kannst Du diese View ganz normal programmatisch oder im InterfaceBuilder verwenden.

    Mattes

    Ich hatte aus dem internet verstanden dass man ein CGComtext braucht aber das war mehr oder weniger alles was ich verstanden habe.

    Wenn ich die subklasse von NSView habe, was,mache ich damit ? Ich hatte gesehen dass man macht oft subklassen von NSView aber ich habe nicht den sinn dieser sachr verstanden.

    Auch die überschreibung von methoden wie drawInRect hatte ich gesene und hatte nicht den sinn vom ganzen verstanden.

    Wie ich dann ich in meiner view male ist mir auch ein rätzel....
  • sergiozh schrieb:

    Wenn ich die subklasse von NSView habe, was,mache ich damit ? Ich hatte gesehen dass man macht oft subklassen von NSView aber ich habe nicht den sinn dieser sachr verstanden
    Das heisst aber in der Konsequenz, dass Dir wesentliche Grundlagen im Verständnis objekt-orientierter Programmierung fehlen. Was soll es dann helfen, wenn Dir jemand ein Grundgerüst mit fertigem Code vor die Füsse wirft? Du wirst nur kritiklos einige Zeilen duplizieren können und hoffen, dass alles funktioniert. Glaube mir, das hilft keinem.

    Aus meiner Sicht hast Du genau zwei Optionen:
    1. Du möchtest Dich mit Programmierung beschäftigen: Dann lerne die grundlegenden Konzepte, Deine Entwicklungsumgebung, Sprache und Frameworks ... und Dein Vorhaben ist kein Hexenwerk.
    2. Du möchtest nur Deine Aufgabe gelöst haben: Formuliere genau die Anforderungen und beauftrage jemanden mit der kompletten Umsetzung.
    Alles andere ist Stümperei...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • nussratte schrieb:

    sergiozh schrieb:

    Es ist nicht üblich in foren nach geld zu fragen.
    aber nach gratis Arbeit in Foren zu fragen ist üblich?

    Ich bin mitglied in einem italienischen und einem deutschen wohnmobilforum und in beide es gibt viele hilfe zwischen den mitgliedern (die sich in der realität nicht kennen) und auch leuten die viele stunden "arbeiten" um jemand anderen vom forum in der reelle welt zu helfen ohne nach geld zu fragen.

    Ich kann aber verstehen dass dies für dich fremd ist.
  • sergiozh schrieb:

    Die aufgabe ist genau formuliert im bild oben: ich möchte ein solches bild in swift haben
    Da reden wir wohl aneinander vorbei: Ich meinte damit, Du müsstest schon einen Entwickler beauftragen, der Deine Anforderung erfüllt, nicht einfach ein Posting in einem Entwickler-Forum absetzen. Dazu gehört im Regelfall mehr als eine Servietten-Skizze, z. B. Dinge wie unterstützte OS-Versionen, Rechte am Source-Code, ... Einen Entwickler kannst Du z. B. im Netz in entsprechenden Portalen finden ... dieses Forum hat dazu den Bereich "Stellenmarkt". Oder vielleicht findet sich ein Schüler in Deinem Umfeld, der sich ein paar Euro verdienen möchte.

    Schade finde ich, wie Du hier auftrittst und einfach nur Deine Arbeit abkippen möchtest. Das mag in der Wohnmobil-Community anders sein, aber hier ist dies nicht Usus. Im Regelfall wird hier Hilfe zur Selbsthilfe geleistet, eben für Entwickler. Das kann auch mal ein Code-Snippet sein, aber kaum fertige Programme oder ganze Code-Reviews mit Fehleranalyse. Die Grenzen sind schwimmend, aber der Ton macht die Musik und viele Teilnehmer in diesem Forum kennen sich schon lange, IRL oder auch nicht.

    Wenn Du nur an der Lösung und nicht am Weg interessiert bist, spielt die Sprache ja keine Rolle. Vielleicht helfen Dir die paar Zeilen Objective-C weiter, was Klassen und Vererbung ist, müsstest Du aber dennoch lernen:

    Quellcode

    1. - (void)drawRect:(NSRect)dirtyRect {
    2. [super drawRect:dirtyRect];
    3. // Drawing code here.
    4. CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];
    5. CGContextSaveGState(context);
    6. CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    7. CGContextSetStrokeColorSpace(context, colorSpace);
    8. CGContextSetFillColorSpace(context, colorSpace);
    9. CGFloat color[4] = {1.0f, 0.0f, 0.0f, 1.0f};
    10. CGContextSetFillColor(context, color);
    11. CGContextAddRect(context, CGRectMake(100.0f, 200.0f, 10.0f, 20.0f));
    12. CGContextFillPath(context);
    13. CGContextRestoreGState(context);
    14. }
    Alles anzeigen
    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Ich weiss was vererbung ist. Ich habe das swift buch von apple zwei mal gelesen.

    Eine klasse die von einer andere klasse vererbt hat automatisch alle propreties und methoden der mutterklasse.

    Das nützt aber mir nicht weiter um mein problem zu lösen.

    In der bibliothek habe ich ein buch über quartz 2D bestellt aber leider ist eben mit Objective-C und hatte schon versucht Objective-C zu lernen ohne grosse erfolg und deshalb weiss nicht wieviel ich vom buch profitieren kann.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von sergiozh ()

  • sergiozh schrieb:

    Das nützt aber mir nicht weiter um mein problem zu lösen.
    Doch, das tut es: Wie ich oben schrieb erzeugst Du eine Subclass von NSView und überschreibst deren drawRect:-Methode mit dem genannten Code (in Swift müsstest Du ihn übersetzen). Nun im IB angeben, das die Hauptview von diese Subclass instanziert werden soll, fertig: Das Programm malt ein Rechteck in's Fenster.

    Das Ganze dauert ca. 10 Minuten, dann fehlen natürlich noch die Zeichenbefehle für Deine Ausgabe.

    Aber ich habe nicht den Eindruck, dass Du an einer Hilfestellung interessiert bist, die keine fertige Lösung bietet. Für mich ist hiermit EOT.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Wenn das ganze 10 minuten dauert muss man wirklich so viel über geld und gratis-arbeit reden ?

    Mein eindruck ist dass viele profi-informatiker nicht verstehen können, die schwierigkeiten die ein anderes mensch In Ihren gebiet haben kann.

    Wenn ich fähig war mein problem selbständig lösen zu könnten, hätte ich nicht um hilfe gefragt. Statt hilfe zu bekommen man hat mir als ein schmarotzer behandelt.

    Informatiker schreiben mit viele abkürzungen (IB, EOT,...) und ob man es versteht oder nicht bleibt ein rätzel.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von sergiozh ()

  • sergiozh schrieb:

    Mein eindruck ist dass viele profi-informatiker nicht verstehen können, die schwierigkeiten die ein anderes mensch In Ihren gebiet haben kann.
    Das können die „Profi-Informatiker“ durchaus, denn da sind die alle am Anfang mal durch. Die haben das aber auch nicht in fünf Minuten gelernt, sondern da muss du in Jahren rechnen.
    Viele Anfänger können aber nicht verstehen, dass man, um eine auf den ersten Blick recht einfache Anwendung umzusetzen, sich erst einmal ein Grundverständnis über das Programmieren generell und das verwendete System erarbeiten muss. Die verwendete Programmiersprache ist dabei nur ein recht kleiner Teil des ganzen Systems. Der deutlich größere Teil ist die Funktionsweise der Systemkomponenten, die du verwendest und diesen Teil kann man in einem Forum nicht mal eben so in fünf Minuten erklären.

    Du kannst dir ja mal einen für deinen Fall zutreffenden Guide anschauen. Dieser Guide erklärt dir, wie man unter macOS auf den Bildschirm zeichnet. Da wird zwar auch noch Objective-C benutzt, aber allein vom Umfang her sollte dir klar werden, dass man da nicht durch ein fertiges Beispielprojekt den Durchblick bekommt. Und dieser Guide verweist auch auf andere Guides, die wieder auf andere Guides verweisen.

    Erfahrene Entwickler haben dir hier Tipps gegeben, welche Schritte dich weiterbringen können und man hat dir Beispiel-Zeichencode verlinkt.
    Nun liegt es an dir, ob du einem Erfahrenen Entwickler vertraust, dass er dich in die Richtige Richtung „schubst“ oder eben nicht. Letzteres wird dich aber garantiert nicht weiter bringen.