pborawski

Diagram.cs

Apr 23rd, 2012
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.74 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. namespace WindowsFormsApplication4
  11. {
  12.     public enum TypPunktu : int
  13.     {
  14.         P_Kolo, P_Kwadrat, P_Krzyz
  15.     }
  16.    
  17.     class Diagram : Skala
  18.     {
  19.         private Graphics g;
  20.         private double xr0, yr0, rszer, rwys;
  21.        
  22.         public Diagram(int xe0, int ye0, int eszer, int ewys,
  23.             double Axr0, double Ayr0, double Arszer, double Arwys, Graphics ag) :
  24.             base( xe0, ye0, eszer, ewys, Axr0, Ayr0, Arszer, Arwys)
  25.         {
  26.             g = ag;
  27.             xr0 = Axr0;
  28.             yr0 = Ayr0;
  29.             rszer = Arszer;
  30.             rwys = Arwys;
  31.         }
  32.         private Graphics CreateGraphics()
  33.         {  
  34.             throw new NotImplementedException();
  35.         }
  36.  
  37.         public void siatka( double x0, double y0, double x1, double x2,
  38.             double y1, double y2,double dx, double dy, Color k) // p to kolor linii
  39.         {
  40.             double x, y;
  41.             int xe, ye, xemin, xemax, yemin, yemax;
  42.             Pen p = new Pen(k);
  43.  
  44.             xemin = daj_ekr_x( x1); //rogi siatki na ekranie
  45.             xemax = daj_ekr_x( x2);
  46.             yemin = daj_ekr_y( y1);
  47.             yemax = daj_ekr_y( y2);
  48.  
  49.             for( x = x0; x >= x1; x -= dx)      //część lewa podziałki osi poziomej
  50.             {
  51.                 xe = daj_ekr_x( x);
  52.                 g.DrawLine(p, xe, yemin, xe , yemax);
  53.                 /*g -> MoveTo( xe, yemin);
  54.                 g -> LineTo( xe, yemax);*/
  55.             }
  56.  
  57.             for( x = x0; x <= x2; x += dx)      //część prawa podziałki osi poziomej
  58.             {
  59.                 xe = daj_ekr_x( x);
  60.                 g.DrawLine(p, xe, yemin, xe , yemax);
  61.             }
  62.  
  63.             for( y = y0; y >= y1; y -= dy)      //część dolna podziałki osi pionowej
  64.             {
  65.                 ye = daj_ekr_y( y);
  66.                 g.DrawLine(p, xemin, ye, xemax , ye);
  67.                
  68.             }
  69.  
  70.             for( y = y0; y <= y2; y += dy)      //część górna podziałka osi pionowej
  71.             {
  72.                 ye = daj_ekr_y( y);
  73.                 g.DrawLine(p, xemin, ye, xemax , ye);
  74.             }
  75.            
  76.             //c = Color.Blue;
  77.            
  78.         }
  79.        
  80.         public void uklad_xy( double x0, double y0, double x1, double x2,
  81.             double y1, double y2,  double dx, double dy, int delta, Color k)
  82.         {
  83.             double x, y;
  84.             int xe0, ye0, xe, ye, xemin, xemax, yemin, yemax;
  85.             int d = delta / 2;
  86.             Pen p = new Pen(k);
  87.  
  88.            
  89.  
  90.             xe0 = daj_ekr_x( x0);       //środek układu współrzędnych
  91.             ye0 = daj_ekr_y( y0);
  92.  
  93.             xemin = daj_ekr_x( x1); //rozpiętości osi układu
  94.             xemax = daj_ekr_x( x2);
  95.             yemin = daj_ekr_y( y1);
  96.             yemax = daj_ekr_y( y2);
  97.  
  98.             g.DrawLine(p, xemin, ye0, xemax , ye0);
  99.            
  100.             for( x = x0; x >= x1; x -= dx)      //część lewa podziałki osi poziomej
  101.             {
  102.                 xe = daj_ekr_x( x);
  103.                 g.DrawLine(p, xe, ye0 - d, xe, ye0 + d);
  104.                
  105.             }
  106.  
  107.             for( x = x0; x <= x2; x += dx)      //część prawa podziałki osi poziomej
  108.             {
  109.                 xe = daj_ekr_x( x);
  110.                 g.DrawLine(p, xe, ye0 - d, xe, ye0 + d);
  111.             }
  112.  
  113.             g.DrawLine(p,xe0,yemin,xe0,yemax);
  114.            
  115.             for( y = y0; y >= y1; y -= dy)      //część dolna podziałki osi pionowej
  116.             {
  117.                 ye = daj_ekr_y( y);
  118.                 g.DrawLine(p, ye0 - d, ye, ye0 + d,ye);
  119.             }
  120.  
  121.             for( y = y0; y <= y2; y += dy)      //część górna podziałka osi pionowej
  122.             {
  123.                 ye = daj_ekr_y( y);
  124.                 g.DrawLine(p, ye0 - d, ye, ye0 + d,ye);
  125.             }
  126.            
  127.         }
  128.         public void punkt( double x, double y, int delta,
  129.                TypPunktu typ, Color k)
  130.          {
  131.             int xe = daj_ekr_x( x), ye = daj_ekr_y( y);
  132.             int d = delta / 2;
  133.             Pen p = new Pen(k);
  134.             SolidBrush b = new SolidBrush(k);
  135.             switch(typ)
  136.             {
  137.                 case TypPunktu.P_Kolo:
  138.                     g.FillEllipse(b, xe-d, ye-d, 2*d, 2*d);
  139.                     break;
  140.                 case TypPunktu.P_Kwadrat:
  141.                     g.FillRectangle(b, xe-d, ye-d, 2*d, 2*d);
  142.                     break;
  143.                 case TypPunktu.P_Krzyz:
  144.                     g.DrawLine(p, xe - d, ye, xe + d, ye);
  145.                     g.DrawLine(p, xe, ye - d, xe, ye + d);
  146.                    
  147.                     break;
  148.             }          
  149.            
  150.          }
  151.     }
  152. }
Advertisement
Add Comment
Please, Sign In to add comment