Packages

  • package root
    Definition Classes
    root
  • package de
    Definition Classes
    root
  • package h2b
    Definition Classes
    de
  • package scala
    Definition Classes
    h2b
  • package lib
    Definition Classes
    scala
  • package simgraf

    This is a Scala library of graphics utilities.

    This is a Scala library of graphics utilities. It is focused on simple drawing of shapes and functions without the need of instructing the graphics system by a dozen or so settings before a simple picture is shown. It is not meant to program graphical user interfaces with buttons, menus and so on.

    The World

    A World provides graphics in world coordinates. For instance,

    val w = World(p1, p2)(p0, w, h, title)

    defines a world that has a coordinate system with a Point p1 in the lower-left corner and the upper-right corner at p2. All operations ensure clipping to that area, so that it is safe to use coordinates outside of it.

    The second parameter group defines the location on the screen: p0 denotes the upper left Pixel, w and h the width and the height of the window in pixels and title gives a window title (that will not reduce the drawing area).

    A Point defines a location in the world coordinate system using two doubles, while a Pixel denotes a location on the screen by means of two integers.

    Note that the y axis of the world coordinate system is directed from bottom to top while at the screen level it is vice versa.

    So, for example

    val w = World(Point(-100,-100), Point(100,100))(Pixel(0,0), 200, 200, "Circle")

    defines a world with x and y axis both ranging from -100 to +100 shown in a window of size 200x200 pixels at the upper left corner of the screen titled "Circle".

    Once you have a world, you can execute several methods on it: plot a point or clear the world to a specified color, use moveTo or drawTo for plotter-like operations and -- at the highest abstraction -- draw or fill shapes of type Drawable or Fillable, respectively.

    Each world maintains an activeColor which can be set and is used for most drawings and fillings until it is changed (except for those that use their own color).

    To fill a circle of color Magenta and radius 75.0 around the origin of our world w on a white background, we write:

    w.clear(Color.White)
    w.activeColor = Color.Magenta
    w.fill(Circle(Point(0,0), 75.0))

    That's it: with these three lines of code and the definition of w above you get a graphic on the screen.

    The Screen

    A Screen provides direct pixel graphics. It is the back end of World.

    It can be used on its own if no world coordinate system is needed and bare screen-pixel coordinates shall be applied instead. Though, there are no fancy general shape-oriented draw and fill operations as World has to offer, but only some primitives like setPixel, drawLine, drawSquare, fillSquare, moveTo or drawTo.

    Definition Classes
    lib
  • package driver
    Definition Classes
    simgraf
  • AwtEventDriver
  • AwtScreenDriver
  • ScreenDriver

abstract class ScreenDriver extends AnyRef

Driver methods for screen graphics.

The drawing area will have the specified width and height and will be positioned at the given location (if possible).

It will have a coordinate system with the origin (0, 0) in the lower-left corner and the upper-right corner at (width-1, height-1). All operations ensure clipping to that area, so that it is safe to use coordinates outside of it.

Implementations have to provide the activeColor variable and the draw... and fill... methods as well as getPixel and setPixel.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ScreenDriver
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ScreenDriver(p0: Pixel, width: Int, height: Int, title: String = "")

    p0

    location of the upper-left corner on the screen

    width

    horizontal dimension

    height

    vertical dimension

    title

    optional window title (will not reduce the drawing area, defaults to empty string)

    Attributes
    protected

Abstract Value Members

  1. abstract val activeColor: Color

    color to be used for the next operations (except for those that use their own color)

  2. abstract def close(): Unit

    Closes the screen this driver is associated to.

    Closes the screen this driver is associated to.

    Since

    1.3.0

    Note

    Might not have an effect if the underlying implementation does not support such an operation.

  3. abstract def drawArc(p0: Pixel, width: Int, height: Int, startAngle: Int, arcAngle: Int): Unit

    Draws an arc within a virtual rectangle.

    Draws an arc within a virtual rectangle.

    Angles are given in degrees, where 0 is the direction of the x axis and positive values count counter-clockwise while negative values count clockwise.

    p0

    centre of the arc

    width

    of the enclosing rectangle

    height

    of the enclosing rectangle

    startAngle

    start in degrees

    arcAngle

    extent in degrees

    Example:
    1. drawArc(Pixel(10,10), 5, 5, 0, 360) draws a circle of diameter 5 around the centre (10,10)

  4. abstract def drawLine(p1: Pixel, p2: Pixel): Unit

    Draws a line from p1 to p2.

  5. abstract def drawPolyline(p: Seq[Pixel]): Unit

    Draws a polygonal chain with vertices defined by the specified sequence.

    Draws a polygonal chain with vertices defined by the specified sequence.

    The chain is not closed by default. To achieve this, set the last vertex equal to the first.

  6. abstract def drawRectangle(p1: Pixel, p2: Pixel): Unit

    Draws a rectangle with diagonal opposite corners at p1 and p2.

  7. abstract def drawText(p0: Pixel, text: String): Unit

    Draws a text with lower-left corner at p0.

    Draws a text with lower-left corner at p0.

    text

    null does nothing

  8. abstract def fillArc(p0: Pixel, width: Int, height: Int, startAngle: Int, arcAngle: Int): Unit

    Fills an arc within a virtual rectangle.

    Fills an arc within a virtual rectangle.

    Angles are given in degrees, where 0 is the direction of the x axis and positive values count counter-clockwise while negative values count clockwise.

    p0

    centre of the arc

    width

    of the enclosing rectangle

    height

    of the enclosing rectangle

    startAngle

    start in degrees

    arcAngle

    extent in degrees

    Example:
    1. fillArc(Pixel(10,10), 5, 5, 0, 360) fills a circle of diameter 5 around the centre (10,10)

  9. abstract def fillPolygon(p: Seq[Pixel]): Unit

    Fills a polygonal area with vertices defined by the specified sequence.

    Fills a polygonal area with vertices defined by the specified sequence.

    There is no need to close the sequence of vertices.

  10. abstract def fillRectangle(p1: Pixel, p2: Pixel): Unit

    Fills a rectangle with diagonal opposite corners at p1 and p2.

  11. abstract def getPixel(p: Pixel): Color

    Gets color of a pixel.

    Gets color of a pixel.

    returns

    the color of the pixel at p or Color(0, 0, 0) if it is outside of the drawing area

  12. abstract def setPixel(p: Pixel, color: Color): Unit

    Sets pixel to color.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. def flipV(y: Int): Int

    Helper function for systems with origin at upper-left corner.

    Helper function for systems with origin at upper-left corner.

    y

    original coordinate

    returns

    vertical flipped coordinate

    Attributes
    protected
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  12. val height: Int
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  17. val p0: Pixel
  18. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  19. val title: String
  20. def toString(): String
    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. val width: Int

Inherited from AnyRef

Inherited from Any

Ungrouped