fi.jyu.mit.graphics

Graphics on Ohjelmointi 1 kurssille tarkoitettu käytöltään yksinkertainen graafinen kirjasto.

1. Käyttöönotto

1.1 Kirjasto

  • kopioi itsellesi Graphics.jar. Vinkki: Klikkaa linkkiä hiiren oikeanpuoleisella napilla (valikkonappi) ja valitse 'Tallenna nimellä...'.

1.2 Kääntäminen ja ajaminen komentoriviltä

  • Esimerkiksi alle olevan SimpleGraphics-mallin kääntämiseksi:
  • Tee itsellesi ensin tiedosto SimpleGraphics.java ja kopioi siihen mallin mukainen sisältö.
  • anna komentoriviltä komennot:
    javac -cp Graphics.jar SimpleGraphics.java
    java -cp .;Graphics.jar SimpleGraphics
    
    Muistathan, että Unix- ja Linux-käyttöjärjestelmissä polun osat erotellaan kaksoispisteellä, joten niissä ajo tapahtuu seuraavasti
    java -cp .:Graphics.jar SimpleGraphics
    

1.3 Helpompi käyttäminen jos tarvitsee tehdä useammin

  • Kannattaa ehkä lisätä Graphics.jar luokkien etsintäpolkuun Windowsissa komennolla (huomaa piste lopussa, se PITÄÄ olla)
    set CLASSPATH=.;Graphics.jar
    
  • Muista että tuo komento pitää antaa erikseen joka kerta kun konsoli-ikkunan käynnistää uudelleen.
  • Graphics.jar saa olla muuallakin, silloin vaan sanotaan myös se polku, josta löytyy, esim: set CLASSPATH=.;n:\kurssit\ohj1\graphics\Graphics.jar
  • Linuxeissa vastaava komento on:
    export CLASSPATH=.:Graphics.jar
    
  • Sitten itse kääntäminen ja ajaminen menevät komennoilla:
    javac  SimpleGraphics.java
    java  SimpleGraphics
    

1.4 Käyttö Eclipsessä

  • tarvittaessa luo uusi Java-projekti ja sinne uusi luokka
  • paina projetin nimen päällä hiiren oikeaa nappia ja ota Properties
  • Java Build Path/Libraries/Add External JARs...
  • lisää Graphics.jar
  • aja ohjelma

2. Käyttö esimerkkien avulla

2.1 Yksinkertaisin malli

  • source:/graphics/trunk/sample/SimpleGraphics.png source:/graphics/trunk/sample/SimpleGraphicsCoord.png
    import fi.jyu.mit.graphics.EasyWindow;
    
    public class SimpleGraphics {
    
    	public static void main(String[] args) {
    		EasyWindow window = new EasyWindow();
    		window.addLine(0,0,100,100);
    		window.addCircle(50,50, 20);
    		window.showWindow();
    		
    	}
    
    }
    

2.2 Enemmän ominaisuuksia

import fi.jyu.mit.graphics.*;

public class GraphicsTest {
    public static void main(String[] args) {
		
        EasySpace space = new EasySpace(); //Luodaan avaruus johon lisataan komponentit

	    double points[][] = {
	    	{ 0, -2 , 1}, 
	        { 2, -2 , 2},
	        { 2,  0 , 3},
	        { 0,  2 , 2},
	        {-2,  0 , 1}
            };

	    space.addPolygon(points).setColor(255, 0, 0); //3D-polygon

	    space.addCircle(0, 0, 2).setColor(0, 255, 0);

	    space.addLine(-2.7, 2.5, 1, 1).setColor(0, 0 , 255);

	    space.addCircle(0, -2.5, 0.2);

	    Window window = new Window();
	    window.scale(-3, -3, 3, 3);
	    space.addAxis(5, 5, 5); //x-, y- ja z-akselit joiden pituus on 5

	    window.setSpace(space); //Asetetaan window-ikkuna nayttamaan aiemmin luotua spacea

	    window.showWindow();

	    EasyWindow w2 = new EasyWindow(400, 400);
	    w2.scale(-5, -5, 5, 5);

	    w2.rotate(Axis.Y, 45); //Pyoritetaan y-akselin ympari
	    w2.rotate(Axis.Z, 45); //Pyoritetaan z-akselin ympari

	    w2.setSpace(space);
	    w2.showWindow();
	    w2.getPanel().setAllowRescale(false);

	    space.addCircle(0, 0, -3, 1).setColor(192, 52, 200);
	}
}

2.3 Erikoisominaisuuksia

Jos haluat ajaa esimerkkejä valikon kautta, anna komento

  java -jar Graphics.jar

Jos haluat kokeilla alla olevia esimerkkejä (oletetaan että sinulla on CLASSPATH asetettuna), niin anna komento (toki haluamasi luokan nimi):

  java  sample.CarSample

Esimerkissä on kahdet ohjausikkunat, joista toisella voi hallita koko kuvan asentoa ja toisella ukon asentoa. Ruksimalla automaattiruudun, ja painamalla jonkin akselin näppäintä, saa kuvan tai ukon pyörimään jatkuvasti ko. akselin suhteen. "TouchPadistä" voi säätää asentoa nopeasti. Vasemmassa vain hiirtä liikuttamalla ja toisessa hiiri pohjassa.

Jos haluat kokeilla JA muokata alla olevia esimerkkejä, lataa koodi Lähdekoodi-linkista ja siellä Plain Text -linkistä hakemistoon sample (luo itsellesi tällainen hakemisto, jos sinulla ei vielä ole sellaista). Oletetaan että sinulla on CLASSPATH asetettuna. Oletetaan että olet muokannut tiedostoa graphihcsSample/UkkoSample.java ja olet tallentanut sen nimelle graphihcsSample/UkkoSample2.java. Silloin käännökset ja ajo esimerkiksi komennoilla jotka annetaan siis sample-hakemiston isä-hakemistossa:

  javac sample/UkkoSample2.java
  java  sample.UkkoSample2

2.4 Toiveita

  • Pylväsdiagrammit
  • Piirakkakuviot
  • kaikki em. voinee yleistää sopivasta datajoukosta
  • Tekstit (ei 3D:tä ainakaan aluksi)