Forum: PC-Programmierung .NET: Smith-Chart darstellen


von Ralf (Gast)


Lesenswert?

Hallo,

kennt jemand eine Möglichkeit, wie man in .NET ein Smith-Chart 
darstellen kann? Alternative wäre selber ein Control zu erstellen, dafür 
bräuchte ich aber einen kleinen Schucker in die richtige Richtung, wie 
man ein SC generiert.

Ralf

von Purzel H. (hacky)


Lesenswert?

Eine Smith Chart ist eine Transformation. Mach ma.

von Ralf (Gast)


Lesenswert?

> Eine Smith Chart ist eine Transformation. Mach ma.
Lass mich die Frage anders formulieren:
Wo finde ich Informationen, wie man das Smith-Chart selbst darstellt?
Das eintragen der Werte etc. kann ich aus dem Wikipedia-Artikel 
rauslesen, aber wie man das Chart selbst erstellt ist mir nicht klar.
Und da ich kein HF-Spezialist bin, kann ich allein mit dem Begriff 
"Transformation" noch nicht viel anfangen :)

Ralf

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Einfachster Weg? Lad' dir das SVG runter und mal die Kreise/Linien in 
der von dir benötigten Skalierung auf ein Controll (k.A. ob es für C# 
SVG Support gibt ich denke mal schon, ansonsten ist 'das SVG Format' 
auch nicht so wahnsinnig komplex)

von Yalu X. (yalu) (Moderator)


Lesenswert?

Ralf schrieb:
> Das eintragen der Werte etc. kann ich aus dem Wikipedia-Artikel
> rauslesen, aber wie man das Chart selbst erstellt ist mir nicht klar.

Das steht ebenfalls im Wikipedia-Artikel:

"
  Das Diagramm ist kreisförmig und mit einem komplexen Koordinatensystem
  versehen. Es beruht auf der konformen Abbildung
"

Damit kannst du für jede komplexe Zahl z der Gaußschen Zahlenebene ihre
Position im Smith-Diagramm berechnen. Die Funktion bildet Geraden auf
Kreise ab, so dass die Gitterstruktur des kartesischen Koordinatensys-
tems in die Kreisstruktur des Smith-Diagramms übergeführt wird.

Dies Kreise kannst du folgendermaßen zeichnen:

Für jeden darzustellenden Realanteil re (z.B. 0, 0,1, 0,2, 0,3, ...):
  Zeichne einen Kreis mit
    Mittelpunt  = (re/(re+1), 0)
    Radius      = 1/(re+1)

Für jeden darzustellenden Imaginäranteil im (z.B. 1, 2, 3, ...):
  Zeichne einen Kreisbogen mit
    Mittelpunkt = (1, +1/im)
    Radius      = 1/im
    Startwinkel = 3·pi/2-phi
    Endwinkel   = 3·pi/2
  Zeichne einen Kreisbogen mit
    Mittelpunkt = (1, -1/im)
    Radius      = 1/im
    Startwinkel = pi/2
    Endwinkel   = pi/2+phi
  Dabei ist beidesmal
    phi         = 2·arctan(1/im)

Für den Imaginäranteil 0:
  Zeichne eine Linie von (-1, 0) nach (+1, 0)

Üblicherweise werden die Kreise bzw. Kreisbögen nicht alle vollständig
gezeichnet, da sie sonst im rechten Teil des Diagramms zu dicht liegen
würden. Wo du sie jeweils enden lässt, darfst du dir selber überlegen :)

Auch die Beschriftung musst du noch irgendwie hinfrickeln.

von Ralf (Gast)


Lesenswert?

Hallo,

@Läubi:
Okay, das wird Plan B :)

@Yalu:
Oi, das hört sich etwas aufwendiger an :)
Ich les mir das in Ruhe durch. Dass es im Wiki auch steht, ist mir erst 
nachdem ich heut mittag geantwortet hab aufgefallen. Nur konnte ich's da 
noch nicht umsetzen, mit deiner Beschreibung komme ich vielleicht etwas 
weiter :)

Ralf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.