Class Triangle

java.lang.Object
eu.pedu.lib20s.canvas.Triangle
All Implemented Interfaces:
ICanvasPaintable, ICanvasShape, IDirectable, IFlexible, IChangeable, IMovable, IResizable, IShape, IColorable, ICopyable

public class Triangle
extends java.lang.Object
implements ICanvasShape, IColorable, IDirectable
Instance třídy Trojúhelník představují trojúhelníky určené pro práci na virtuálním plátně při prvním seznámení s třídami a objekty. Instance jsou definované svojí pozicí, rozměrem, barvou a směrem. Pozicí instance se přitom rozumí pozice levého horního rohu opsaného obdélníku a rozměrem rozměr tohoto obdélníku. Směr trojúhelníku je pak definován jako směr, do nějž je natočen jeho hlavní vrchol.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static NamedColor DEFAULT_COLOR
    Počáteční barva nakreslené instance v případě, kdy uživatel žádnou požadovanou barvu nezadá - pro elipsu NamedColor.GREEN.
    static Direction8 DEFAULT_DIRECTION
    Směr, kam bude ukazovat vrchol trojúhelníku v případě, když uživatel žádný preferovaný směr nezadá.
    protected int height
    Výška instance.
    protected int width
    Šířka instance.
  • Constructor Summary

    Constructors 
    Constructor Description
    Triangle()
    Vytvoří instanci s implicitním umístěním, rozměry, barvou a natočením.
    Triangle​(int x, int y, int width, int height)
    Vytvoří instanci se zadanou pozicí a rozměry a implicitní barvou a směrem natočení.
    Triangle​(int x, int y, int width, int height, Direction8 direction)
    Vytvoří instanci se zadanou pozicí, rozměry a směrem natočení a s implicitní barvou.
    Triangle​(int x, int y, int width, int height, NamedColor color)
    Vytvoří instanci se zadanou pozicí, rozměry a barvou.
    Triangle​(int x, int y, int width, int height, NamedColor color, Direction8 direction)
    Vytvoří instanci se zadanou pozicí, rozměry, barvou, i směrem natočení.
    Triangle​(Area area, NamedColor color, Direction8 direction)
    Vytvoří instanci vyplňující zadanou oblast a mající zadanou barvu a směr natočení.
    Triangle​(Position position, Size size, NamedColor color, Direction8 direction)
    Vytvoří instanci se zadanou pozicí, rozměry, barvou, i směrem natočení.
  • Method Summary

    Modifier and Type Method Description
    Triangle copy()
    Vrátí kopii dané instance, tj. stejně velkou, umístěnou a natočenou instanci stejné barvy.
    NamedColor getColor()
    Vrátí aktuální barvu instance.
    Direction8 getDirection()
    Vrátí směr, do nějž je instance otočena.
    int getHeight()
    Vrátí výšku instance v bodech.
    java.lang.String getName()
    Vrátí název instance.
    int getWidth()
    Vrátí šířku instance v bodech.
    int getX()
    Vrátí x-ovou (vodorovnou) souřadnici pozice instance, tj. vodorovnou souřadnici levého horního rohu opsaného obdélníku.
    int getY()
    Vrátí y-ovou (svislou) souřadnici pozice instance, tj. svislou souřadnici levého horního rohu opsaného obdélníku.
    void paint()
    Zobrazí svoji instanci, tj.vykreslí její obraz na plátno.
    void rubOut()
    Smaže obraz své instance z plátna (nakreslí ji barvou pozadí plátna).
    void setColor​(NamedColor color)
    Nastaví novou barvu instance.
    void setDirection​(Direction8 direction)
    Otočí instanci do zadaného směru.
    void setName​(java.lang.String name)
    Nastaví nový název instance.
    void setPosition​(int x, int y)
    Přemístí instanci na zadanou pozici.
    void setSize​(int width, int height)
    Nastaví nové rozměry instance.
    java.lang.String toString()
    Vrátí textový podpis instance, tj. její řetězcovou reprezentaci.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface eu.pedu.lib20s.geom.IChangeable

    getArea, setArea, setArea, setArea

    Methods inherited from interface eu.pedu.lib20s.geom.IMovable

    getPosition, moveDown, moveRight, setPosition, setX, setY

    Methods inherited from interface eu.pedu.lib20s.geom.IResizable

    getSize, setHeight, setSize, setSize, setWidth
  • Field Details

    • DEFAULT_COLOR

      public static final NamedColor DEFAULT_COLOR
      Počáteční barva nakreslené instance v případě, kdy uživatel žádnou požadovanou barvu nezadá - pro elipsu NamedColor.GREEN.
    • DEFAULT_DIRECTION

      public static final Direction8 DEFAULT_DIRECTION
      Směr, kam bude ukazovat vrchol trojúhelníku v případě, když uživatel žádný preferovaný směr nezadá.
    • width

      protected int width
      Šířka instance.
    • height

      protected int height
      Výška instance.
  • Constructor Details

    • Triangle

      public Triangle()
      Vytvoří instanci s implicitním umístěním, rozměry, barvou a natočením. Instance bude umístěna v levém horním rohu plátna a bude mít implicitní barvu, výšku rovnu kroku a šířku dvojnásobku kroku plátna a bude natočena vrcholem na sever.
    • Triangle

      public Triangle​(int x, int y, int width, int height)
      Vytvoří instanci se zadanou pozicí a rozměry a implicitní barvou a směrem natočení. Pozice instance je přitom definována jako pozice levého horního rohu opsaného obdélníku, a rozměr instance jako rozměr tohoto obdélníku.
      Parameters:
      x - Vodorovná (x-ová) souřadnice instance, x=0 má levý okraj plátna, souřadnice roste doprava
      y - Svislá (y-ová) souřadnice instance, y=0 má horní okraj plátna, souřadnice roste dolů
      width - Šířka vytvářené instance, šířka >= 0
      height - Výška vytvářené instance, výška >= 0
    • Triangle

      public Triangle​(int x, int y, int width, int height, NamedColor color)
      Vytvoří instanci se zadanou pozicí, rozměry a barvou. Směr natočení bude implicitní, tj. na sever. Pozice instance je přitom definována jako pozice levého horního rohu opsaného obdélníku, a rozměr instance jako rozměr tohoto obdélníku. Směr trojúhelníku je definován jako směr, do nějž má být natočen jeho hlavní vrchol.
      Parameters:
      x - Vodorovná (x-ová) souřadnice instance, x=0 má levý okraj plátna, souřadnice roste doprava
      y - Svislá (y-ová) souřadnice instance, y=0 má horní okraj plátna, souřadnice roste dolů
      width - Šířka vytvářené instance, šířka >= 0
      height - Výška vytvářené instance, výška >= 0
      color - Barva vytvářené instance
    • Triangle

      public Triangle​(int x, int y, int width, int height, Direction8 direction)
      Vytvoří instanci se zadanou pozicí, rozměry a směrem natočení a s implicitní barvou. Pozice instance je přitom definována jako pozice levého horního rohu opsaného obdélníku, a rozměr instance jako rozměr tohoto obdélníku. Směr trojúhelníku je definován jako směr, do nějž má být natočen jeho hlavní vrchol.
      Parameters:
      x - Vodorovná (x-ová) souřadnice instance, x=0 má levý okraj plátna, souřadnice roste doprava
      y - Svislá (y-ová) souřadnice instance, y=0 má horní okraj plátna, souřadnice roste dolů
      width - Šířka vytvářené instance, šířka >= 0
      height - Výška vytvářené instance, výška >= 0
      direction - Směr, do nějž má být natočen hlavní vrchol
    • Triangle

      public Triangle​(int x, int y, int width, int height, NamedColor color, Direction8 direction)
      Vytvoří instanci se zadanou pozicí, rozměry, barvou, i směrem natočení. Pozice instance je přitom definována jako pozice levého horního rohu opsaného obdélníku, a rozměr instance jako rozměr tohoto obdélníku. Směr trojúhelníku je definován jako směr, do nějž má být natočen jeho hlavní vrchol.
      Parameters:
      x - Vodorovná (x-ová) souřadnice instance, x=0 má levý okraj plátna, souřadnice roste doprava
      y - Svislá (y-ová) souřadnice instance, y=0 má horní okraj plátna, souřadnice roste dolů
      width - Šířka vytvářené instance, šířka >= 0
      height - Výška vytvářené instance, výška >= 0
      color - Barva vytvářené instance
      direction - Směr, do nějž má být natočen hlavní vrchol
    • Triangle

      public Triangle​(Position position, Size size, NamedColor color, Direction8 direction)
      Vytvoří instanci se zadanou pozicí, rozměry, barvou, i směrem natočení. Pozice instance je přitom definována jako pozice levého horního rohu opsaného obdélníku, a rozměr instance jako rozměr tohoto obdélníku. Směr trojúhelníku je definován jako směr, do nějž má být natočen jeho hlavní vrchol.
      Parameters:
      position - Pozice vytvářené instance
      size - Rozměr vytvářené instance
      color - Barva vytvářené instance
      direction - Směr, do nějž má být natočen hlavní vrchol
    • Triangle

      public Triangle​(Area area, NamedColor color, Direction8 direction)
      Vytvoří instanci vyplňující zadanou oblast a mající zadanou barvu a směr natočení. Směr trojúhelníku je definován jako směr, do nějž má být natočen jeho hlavní vrchol.
      Parameters:
      area - Oblast, kterou má vytvářená instance zaujmout
      color - Barva vytvářené instance
      direction - Směr, do nějž má být natočen hlavní vrchol
  • Method Details

    • getColor

      public final NamedColor getColor()
      Vrátí aktuální barvu instance.
      Specified by:
      getColor in interface IColorable
      Returns:
      Instance třídy NamedColor definující aktuálně nastavenou barvu
    • setColor

      public final void setColor​(NamedColor color)
      Nastaví novou barvu instance.
      Specified by:
      setColor in interface IColorable
      Parameters:
      color - Požadovaná nová barva
    • getDirection

      public final Direction8 getDirection()
      Vrátí směr, do nějž je instance otočena. Směr trojúhelníku je definován jako směr, do nějž je natočen jeho hlavní vrchol.
      Specified by:
      getDirection in interface IDirectable
      Returns:
      Instance třídy Direction8 definující aktuálně nastavený směr
    • setDirection

      public final void setDirection​(Direction8 direction)
      Otočí instanci do zadaného směru. Směr trojúhelníku je definován jako směr, do nějž je natočen jeho hlavní vrchol.
      Specified by:
      setDirection in interface IDirectable
      Parameters:
      direction - Nastavovaný směr
    • getName

      public java.lang.String getName()
      Vrátí název instance. Výchozí podoba názvu názvu sestává z názvu třídy následovaného znakem podtržení a ID instance. Název je ale možné kdykoliv změnit.
      Returns:
      Název instance
    • setName

      public void setName​(java.lang.String name)
      Nastaví nový název instance.
      Parameters:
      name - Nový název instance
    • getX

      public int getX()
      Vrátí x-ovou (vodorovnou) souřadnici pozice instance, tj. vodorovnou souřadnici levého horního rohu opsaného obdélníku.
      Specified by:
      getX in interface IMovable
      Returns:
      Aktuální vodorovná (x-ová) souřadnice instance, x=0 má levý okraj plátna, souřadnice roste doprava
    • getY

      public int getY()
      Vrátí y-ovou (svislou) souřadnici pozice instance, tj. svislou souřadnici levého horního rohu opsaného obdélníku.
      Specified by:
      getY in interface IMovable
      Returns:
      Aktuální svislá (y-ová) souřadnice instance, y=0 má horní okraj plátna, souřadnice roste dolů
    • setPosition

      public void setPosition​(int x, int y)
      Přemístí instanci na zadanou pozici. Pozice instance je přitom definována jako pozice levého horního rohu opsaného obdélníku.
      Specified by:
      setPosition in interface IMovable
      Parameters:
      x - Nově nastavovaná vodorovná (x-ová) souřadnice instance, x=0 má levý okraj plátna, souřadnice roste doprava
      y - Nově nastavovaná svislá (y-ová) souřadnice instance, y=0 má horní okraj plátna, souřadnice roste dolů
    • getWidth

      public int getWidth()
      Vrátí šířku instance v bodech. Šířka instance jsou přitom definována jako šířka opsaného obdélníku.
      Specified by:
      getWidth in interface IResizable
      Returns:
      Aktuální šířka instance v bodech
    • getHeight

      public int getHeight()
      Vrátí výšku instance v bodech. Výška instance jsou přitom definována jako výška opsaného obdélníku.
      Specified by:
      getHeight in interface IResizable
      Returns:
      Aktuální výška instance v bodech
    • setSize

      public void setSize​(int width, int height)
      Nastaví nové rozměry instance. Rozměry instance jsou přitom definovány jako rozměry opsaného obdélníku. Nastavované rozměry musí být nezáporné, místo nulového rozměru se nastaví rozměr rovný jedné.
      Specified by:
      setSize in interface IResizable
      Parameters:
      width - Nově nastavovaná šířka; šířka >= 0
      height - Nově nastavovaná výška; výška >= 0
    • copy

      public Triangle copy()
      Vrátí kopii dané instance, tj. stejně velkou, umístěnou a natočenou instanci stejné barvy.
      Specified by:
      copy in interface ICanvasShape
      Specified by:
      copy in interface ICopyable
      Specified by:
      copy in interface IShape
      Returns:
      Požadovaná kopie
    • toString

      public java.lang.String toString()
      Vrátí textový podpis instance, tj. její řetězcovou reprezentaci. Používá se především při ladění.
      Overrides:
      toString in class java.lang.Object
      Returns:
      Název instance následovaný jejími souřadnicemi, rozměry a barvou
    • paint

      public void paint()
      Zobrazí svoji instanci, tj.vykreslí její obraz na plátno.
      Specified by:
      paint in interface ICanvasPaintable
    • rubOut

      public final void rubOut()
      Smaže obraz své instance z plátna (nakreslí ji barvou pozadí plátna).
      Specified by:
      rubOut in interface ICanvasPaintable