newbie: Grafische Formen in JavaScript?

Hallo,
ist es möglich ein Grafisches Objekt mit JavaScript zu erstellen? Ich bin dabei ein Koordinatensystem zu schreiben mit einfachen Funktionen z.B.
F(x)=x^2 oder f(x)=ln(x) oder etwas komplexe Funktionen wie f(x)=2x^2/(x^4-4).
Das wird eine ziemlich kurvige Angelegenheit.
Mir ist es wichtig Funktionen Grafisch darzustellen.
Hab mir überlegt ob ich die Linien in viele kleine punkte gestalte kann, sodass die Kurven erahnt werden können aber nur erahnt. Ich wollte mir mit Linien Abhilfe verschaffen und ohne eine SVG Grafik. Um wieder auf meine Frage zurück zu kommen. Kann man einfache grafische Elemente wie Linien Kreise Kurven per JavaScript darstellen. Ich freue mich über jede Antworten.
Gruß

  1. In HTML 5 gibts das canvas Objekt, guck dir das mal an.

  2. Om nah hoo pez nyeetz, newbie!

    Hab mir überlegt ob ich die Linien in viele kleine punkte gestalte kann,

    Das geht zur Not auch nur mit HTML und CSS.

    Matthias

    --
    1/z ist kein Blatt Papier.

  3. Hallo newbie,

    ... f(x)=2x^2/(x^4-4) ...

    z.B. so, in modernen Browsern mit Canvas, sonst mit vielen div-Elementen.

    Gruß, Jürgen

    1. Om nah hoo pez nyeetz, JürgenB!

      z.B. so,

      Es wäre schön, wenn du noch die scheinbaren Nullstellen bzw. Asymptoten bei [latex]\pm\sqrt[4]{4}[/latex] beseitigen könntest.

      Matthias

      --
      1/z ist kein Blatt Papier.

      1. Hallo Matthias,

        Es wäre schön, wenn du noch die scheinbaren Nullstellen bzw. Asymptoten bei [latex]\pm\sqrt[4]{4}[/latex] beseitigen könntest.

        geht leider nicht, das ist ein Plot- und kein Mathe-Programm. Bei Polen ist es nur Zufall, dass es keinen "Division by Zero Error" gibt.

        Gruß, Jürgen

        1. Om nah hoo pez nyeetz, JürgenB!

          geht leider nicht, das ist ein Plot- und kein Mathe-Programm. Bei Polen ist es nur Zufall, dass es keinen "Division by Zero Error" gibt.

          Letzterer lässt sich sicher abfangen.

          Ersteres: Verbindung zwischen zwei beachbarten Punkten nicht zeichnen, wenn die Funktionswerte unterschiedliches Vorzeichen haben und die Differenz sehr groß ist.

          if (!(f(x) - f(x - delta_x) > 100 && f(x) * f(x - delta_x) < 0))  
          {  
             zeichne  
          }
          

          Die 100 muss man sicher an die gewählte Auflösung anpassen.

          Matthias

          --
          1/z ist kein Blatt Papier.

          1. @@Matthias Apsel:

            nuqneH

            if (!(f(x) - f(x - delta_x) > 100 && f(x) * f(x - delta_x) < 0))

            Das ist nur die halbe Miete. Was, wenn die Differenz kleiner als −100 ist?

            Math.abs() hilft.

            Qapla'

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
            1. Hallo Gunnar,

              ich glaube nicht, dass man das so einfach lösen kann. Um einen Pol von einem echten Sprung unterscheiden zu können, muss man die Formel analysieren. Da ich aber die Formel nur mit "new Function" auswerte, weiß ich  nicht, ob es einen Nenner mit Nullstelle gibt. Es ist eben ein Plotscript, ursprünglich nur geschrieben, um die Plot- und Grafikroutinen zu testen.

              Gruß, Jürgen

              1. Om nah hoo pez nyeetz, JürgenB!

                ich glaube nicht, dass man das so einfach lösen kann. Um einen Pol von einem echten Sprung unterscheiden zu können, muss man die Formel analysieren.

                Das ist sicher richtig, aber du hast zumindest auf eine relativ einfache Weise eine Vielzahl von Funktionen "hübscher" dargesetllt.

                Matthias

                --
                1/z ist kein Blatt Papier.

                1. Hallo Matthias,

                  ... "hübscher" dargesetllt.

                  das stimmt.

                  Gruß, Jürgen

  4. Hallo,
    vielen Dank für eure hinweis und Tipps. Werde ich beherzigen.
    Ich möchte Scripte zu diesem Mathe Thema schreiben zu denen auch etwas ältere Internet Browser Zugriff haben und das wiedergeben können.
    Nochmals Danke für Euren Tipp