WinFuture-Forum.de: Graph Zeichnen In C# - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Graph Zeichnen In C#

#16 Mitglied ist offline   Dyon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 125
  • Beigetreten: 04. April 08
  • Reputation: 0

geschrieben 17. Juli 2008 - 10:27

Also ich habe mal meine Werte den Pixel angepasst;-)
Normalparabel
180, -200
190, 100
200, 200
210, 100
220, -200

Ursprung ist noch immer bei 200|200

So
           private void fxax2b_Click(object sender, EventArgs e)
               
{
                       
string strVar2 = maskedTextBox3.Text;
                       
string strVar3 = maskedTextBox4.Text;                  
                       
try
                       
{
                               
Double b = Convert.ToDouble(strVar2);
                               
Double c = 1/b * 10;                            
                               
Int32 d = Convert.ToInt32(c);      
                               
Double f = 1/b * 20;
                               
Int32 g = Convert.ToInt32(f);

                               
Int32 z = Convert.ToInt32(strVar3);
                                _DrawCurve
(200-g, -200 - z, 200-d, 100 - z, 200, 200 - z, 200+d, 100 - z, 200 + g, -200 - z);
                       
}
                       
catch
                       
{
                               
MessageBox.Show("Error\r\nthere are just positive numbers allowed. ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                       
}
                       
//Parabel mithilfe einer Variablen Zeichnen, die durch die Textbox übergeben wird.
               
}


So habe ich jetzt mal eine Funktion geschrieben
also wenn man in das erste Textfeld eine Zahl eingibt wird die Parabel entweder breiter oder dünner und des zweite Textfeld sind die y-Achsenabschnitte.

Kann mir einer sagen ob das sein kann, also ob das so stimmt vom mathematischen her ?
Dass die Funktionen die angezeigt werden auch wirklich die Funktionen sind?

So jetzt hätte ich noch eine Frage und zwar wie ich am besten bei meinem Koordinatensystem
_DrawLine(200, 0, 200, 400);//Koordinatensystem y-Richtung.
_DrawLine
(0, 200, 400, 200);//Koordinatensystem x-Richtung


Alle 10 Pixel so kleine Striche mit der Länge von 2 odder 3 Pixel anzeigen lasse ohne jeden einzelnen Punkt manuell hinzuschreiben.
Das dürfte ja theoretisch mit einer Schleife gehen.
Am Besten wäre ein Beispiel:-)


Danke^^

Edit:
Kann mir bei dieser Gelegenheit grad noch jemand sagen, wie ich die ganzen Geraden und Parabeln und so in die Picturebox zeichnen kann?
Ich hab hier mal was schönes gefunden
http://www.mycsharp....?threadid=21782
Beim dritten Punkt steht was zu der Picturebox.
Aber irgendwie werde ich daraus nicht so ganz schlau.
Kann mir des noch einer irgendwie erkläten?

Danke

Dieser Beitrag wurde von Dyon bearbeitet: 17. Juli 2008 - 15:26

0

Anzeige



#17 Mitglied ist offline   Caprio2L 

  • Gruppe: aktive Mitglieder
  • Beiträge: 116
  • Beigetreten: 08. Januar 07
  • Reputation: 0

geschrieben 18. Juli 2008 - 09:16

Als Nachschlagewerk zu C# ist entweder die Hilfe im Programm selber oder aber das hier empfehlenswert.

Bei letzterem findest du unter Gliederungspunkt 2.7 alle Infos zu Schleifen.
0

#18 Mitglied ist offline   Dyon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 125
  • Beigetreten: 04. April 08
  • Reputation: 0

geschrieben 18. Juli 2008 - 10:59

Danke
werde ich mir mal nacher anschauen

eine andere Frage
ich zeichne Geraden
                private void _DrawLine(int p0X, int p0Y, int p1X, int p1Y)
               
{
                       
Graphics g = Graphics.FromHwnd(pictureBox1.Handle);
                       
Point p0, p1;
                       
//Pen myPen = new Pen(Color.Red, 1);
                        p0
= new Point();
                        p1
= new Point();
                        p0
.X = p0X;
                        p0
.Y = p0Y;
                        p1
.X = p1X;
                        p1
.Y = p1Y;

                        g
.DrawLine(new Pen(Color.Blue), p0, p1);
               
}


in eine Picturebox, das klappt auch soweit aber wenn ich nun ein anderes Fenster über das Programm schiebe verschwinden die Geraden wieder (was auch klar ist) ich habe es nur noch nicht herausgefunden was ich ändern muss nämlich mit

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawRectangle(new Pen(Color.Black), 10, 10, 100, 100);
g.DrawLine(new Pen(Color.Black), 0, 0, 100, 100);
_DrawLine(0, 400, 400, 0);
}

dem wird das Rechteck und die erste Gerade nicht aber die zweite Gerade fest hineingezeichnet, also die ersten beiden Objekte verschwinden nicht wieder.

Ich hoffe ich habe mien Problem einigermaßen verständlich geschildert:-)

Danke
0

#19 Mitglied ist offline   Dyon 

  • Gruppe: aktive Mitglieder
  • Beiträge: 125
  • Beigetreten: 04. April 08
  • Reputation: 0

geschrieben 23. Juli 2008 - 13:13

Hallo zusammen,
Ich bin immer noch am selben Projekt aber jetzt muss ich das ganze mit einer Klasse machen.

Also so dass ich in meinem Form.cs nur noch einen Funktionsaufruf hat, der sagt jetzt muss was gemalt werden und in der Klasse sowas steht, wie das Koordinatensystem in der Picturebox drehen und einen neuen Nullpunkt festlegen, in der Klasse sollten dann auch die beiden Linien für das Koordinatensystem sein.

Kann mir da einer helfen, wie man dann so eine Klasse in der Picturebox aufruft, wenn etwas neu gezeichnet werden muss?

Danke:-)
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

2 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 2, unsichtbare Mitglieder: 0