Klasa lo28
Janusz Sobieraj - 28 LO

Klasa procedur grafiki R2 w apletach Javy

package liceum28; // plik znajduje sie w folderze 'liceum28'
import java.awt.*;
//==========================================================
public class lo28 // nazwa pliku: lo28.java
{
    public static double sx,sy;
    public static Color tlo,pioro;
    public static pkt2d k_g=new pkt2d(0,0); // położenie kursora graficznego
    //---------------------------------------------------------
    public static pkt2d p2d(double a,double b)
    {
      return(new pkt2d(a,b));
    }
    //==========================================================
    public static void init(Dimension w) //wywolac: lo28.init(getSize( ));
    {
      lo28.sx = w.width / 2;
      lo28.sy = w.height / 2;
      lo28.tlo = new Color(245, 245, 220);
      lo28.pioro = new Color(25, 25, 112);
    }
    //---------------------------------------------------------
    public static int cal_x(double x)
    {
      return ( (int)(20D * x +sx) );
      //20D - D, podkreslenie, ze x jest rzeczywisty
    }
    //---------------------------------------------------------
    public static int cal_y(double y)
    {
      return ((int)(-20D * y +sy));
    }
    //---------------------------------------------------------
    public static double max_x( )
    {
      return (double)(sx/20);
    }
    //---------------------------------------------------------
    public static double max_y( )
    {
      return (double)(sy/20);
    }
    //---------------------------------------------------------
    public static void linia(Graphics g, pkt2d p,pkt2d k)
    {
      g.drawLine(cal_x(p.x),cal_y(p.y),cal_x(k.x),cal_y(k.y));
      k_g.war(k.x,k.y);
    }
    //---------------------------------------------------------
    public static void kursor(Graphics g, pkt2d p)
    {
      k_g.war(p.x,p.y);
    }
    //---------------------------------------------------------
    public static void kreska(Graphics g, pkt2d p)
    {
      linia(g,k_g,p);
      k_g.war(p.x,p.y);
    }
    //---------------------------------------------------------
    public static void okrag(Graphics g, pkt2d a,double r)
    {
      g.drawOval(cal_x(a.x-r),cal_y(a.y+r),(int)(40D*r),(int)(40D*r));
    }
    //---------------------------------------------------------
    public static void prostokat(Graphics g, pkt2d w,double dl,double sz)
    {
      g.drawRect(cal_x(w.x),cal_y(w.y),(int)(20*dl),(int)(20*sz));
    }
    //---------------------------------------------------------
    public static void pisz(Graphics g,pkt2d p,String zd)
    {
      g.drawString(zd,cal_x(p.x),cal_y(p.y));
    }
    //---------------------------------------------------------
    public static void punkt(Graphics g,pkt2d p)
    {
      g.drawRect(cal_x(p.x),cal_y(p.y),0,0);
      k_g.war(p.x,p.y);
    }
    //---------------------------------------------------------
}

Oto zestaw kilku procedur, potrzebnych do rozwiązania zadania przykładowego. Zwróć uwagę jak rysujemy punkt w Javie. Innym rozwiązaniem jest wykorzystanie
g.fillRect(x,y,1,1) .

W folderze "liceum28" powinien oczywiście znaleźć się plik z klasą pkt2d.

Ponadto wprowadzamy kursor graficzny, przydatny w sytuacji gdy grafika tworzona jest na zasadzie "nie odrywania pióra" od ekranu (np żółw w LOGO)