Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- namespace WindowsFormsApplication4
- {
- public enum TypPunktu : int
- {
- P_Kolo, P_Kwadrat, P_Krzyz
- }
- class Diagram : Skala
- {
- private Graphics g;
- private double xr0, yr0, rszer, rwys;
- public Diagram(int xe0, int ye0, int eszer, int ewys,
- double Axr0, double Ayr0, double Arszer, double Arwys, Graphics ag) :
- base( xe0, ye0, eszer, ewys, Axr0, Ayr0, Arszer, Arwys)
- {
- g = ag;
- xr0 = Axr0;
- yr0 = Ayr0;
- rszer = Arszer;
- rwys = Arwys;
- }
- private Graphics CreateGraphics()
- {
- throw new NotImplementedException();
- }
- public void siatka( double x0, double y0, double x1, double x2,
- double y1, double y2,double dx, double dy, Color k) // p to kolor linii
- {
- double x, y;
- int xe, ye, xemin, xemax, yemin, yemax;
- Pen p = new Pen(k);
- xemin = daj_ekr_x( x1); //rogi siatki na ekranie
- xemax = daj_ekr_x( x2);
- yemin = daj_ekr_y( y1);
- yemax = daj_ekr_y( y2);
- for( x = x0; x >= x1; x -= dx) //część lewa podziałki osi poziomej
- {
- xe = daj_ekr_x( x);
- g.DrawLine(p, xe, yemin, xe , yemax);
- /*g -> MoveTo( xe, yemin);
- g -> LineTo( xe, yemax);*/
- }
- for( x = x0; x <= x2; x += dx) //część prawa podziałki osi poziomej
- {
- xe = daj_ekr_x( x);
- g.DrawLine(p, xe, yemin, xe , yemax);
- }
- for( y = y0; y >= y1; y -= dy) //część dolna podziałki osi pionowej
- {
- ye = daj_ekr_y( y);
- g.DrawLine(p, xemin, ye, xemax , ye);
- }
- for( y = y0; y <= y2; y += dy) //część górna podziałka osi pionowej
- {
- ye = daj_ekr_y( y);
- g.DrawLine(p, xemin, ye, xemax , ye);
- }
- //c = Color.Blue;
- }
- public void uklad_xy( double x0, double y0, double x1, double x2,
- double y1, double y2, double dx, double dy, int delta, Color k)
- {
- double x, y;
- int xe0, ye0, xe, ye, xemin, xemax, yemin, yemax;
- int d = delta / 2;
- Pen p = new Pen(k);
- xe0 = daj_ekr_x( x0); //środek układu współrzędnych
- ye0 = daj_ekr_y( y0);
- xemin = daj_ekr_x( x1); //rozpiętości osi układu
- xemax = daj_ekr_x( x2);
- yemin = daj_ekr_y( y1);
- yemax = daj_ekr_y( y2);
- g.DrawLine(p, xemin, ye0, xemax , ye0);
- for( x = x0; x >= x1; x -= dx) //część lewa podziałki osi poziomej
- {
- xe = daj_ekr_x( x);
- g.DrawLine(p, xe, ye0 - d, xe, ye0 + d);
- }
- for( x = x0; x <= x2; x += dx) //część prawa podziałki osi poziomej
- {
- xe = daj_ekr_x( x);
- g.DrawLine(p, xe, ye0 - d, xe, ye0 + d);
- }
- g.DrawLine(p,xe0,yemin,xe0,yemax);
- for( y = y0; y >= y1; y -= dy) //część dolna podziałki osi pionowej
- {
- ye = daj_ekr_y( y);
- g.DrawLine(p, ye0 - d, ye, ye0 + d,ye);
- }
- for( y = y0; y <= y2; y += dy) //część górna podziałka osi pionowej
- {
- ye = daj_ekr_y( y);
- g.DrawLine(p, ye0 - d, ye, ye0 + d,ye);
- }
- }
- public void punkt( double x, double y, int delta,
- TypPunktu typ, Color k)
- {
- int xe = daj_ekr_x( x), ye = daj_ekr_y( y);
- int d = delta / 2;
- Pen p = new Pen(k);
- SolidBrush b = new SolidBrush(k);
- switch(typ)
- {
- case TypPunktu.P_Kolo:
- g.FillEllipse(b, xe-d, ye-d, 2*d, 2*d);
- break;
- case TypPunktu.P_Kwadrat:
- g.FillRectangle(b, xe-d, ye-d, 2*d, 2*d);
- break;
- case TypPunktu.P_Krzyz:
- g.DrawLine(p, xe - d, ye, xe + d, ye);
- g.DrawLine(p, xe, ye - d, xe, ye + d);
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment