コード例 #1
0
ファイル: icons.py プロジェクト: ctn-waterloo/nengo_java_gui
 def paintIcon(self, g2):
     rectangleSize = self.size - self.PADDING
     path = GeneralPath()
     path.moveTo(self.PADDING, self.PADDING)
     path.lineTo(rectangleSize, rectangleSize)
     path.moveTo(self.PADDING, rectangleSize)
     path.lineTo(rectangleSize, self.PADDING)
     g2.draw(path)
コード例 #2
0
    def setSize(self, size):
        # First triangle, size is radius of circumcircle, center at (0,0)
        self.tri1 = GeneralPath()
        self.tri1.moveTo(size, 0)
        self.tri1.lineTo(int(-0.5 * size), int(0.866 * size))
        self.tri1.lineTo(int(-0.5 * size), int(-0.866 * size))
        self.tri1.closePath()

        # Second triangle like first, but rotated 180 degrees
        self.tri2 = self.tri1.clone()
        t = AffineTransform()
        t.rotate(math.pi)
        self.tri2.transform(t)
コード例 #3
0
ファイル: horn.py プロジェクト: tomwhite/alhambra
  def initialiseGraphics(self):
    wiggle=CubicCurve2D.Double(0, 0, 0.3, -0.3, 0.7, 0.3, 1, 0)
    reverseWiggle=CubicCurve2D.Double(1, 0, 0.7, 0.3, 0.3, -0.3, 0, 0)

    self.polygonalTilePath = GeneralPath() 
    self.polygonalTilePath.append(wiggle, 1)

    self.polygonalTilePath.lineTo(math.cos(math.pi / self.n), math.sin(math.pi / self.n))

    t = AffineTransform.getRotateInstance(math.pi / self.n)
    wiggle2 = GeneralPath(reverseWiggle)
    wiggle2.transform(t)
    self.polygonalTilePath.append(wiggle2, 1)

    self.polygonalTilePath.closePath()
    self.polygonalTilePath.transform(self.preTransform)
コード例 #4
0
ファイル: icons.py プロジェクト: ctn-waterloo/nengo_java_gui
class IconImageNode(PXImage):
    """Just like PImage, except it semantically zooms
    (i.e., at low scales, it does not paint its bitmap).

    """
    TEMP_ELLIPSE = Ellipse2D.Float()

    ENABLE_SEMANTIC_ZOOM = False

    def __init__(self, image_or_string=None):
        PXImage.__init__(self, image_or_string)
        self.path = GeneralPath()  # transient???
        self.original_bounds = self.bounds
        self.prev_scale = 0

    def updatePath(self, scale):
        origWidth = self.original_bounds.width
        origHeight = self.original_bounds.height
        width = origWidth * scale
        height = origWidth * scale
        offsetX = (origWidth - width) / 2.
        offsetY = (origHeight - height) / 2.

        self.path.reset()
        self.TEMP_ELLIPSE.setFrame(offsetX, offsetY, width, height)
        self.path.append(self.TEMP_ELLIPSE, False)

    def paint(self, context):
        s = context.scale
        g2 = context.graphics

        if self.ENABLE_SEMANTIC_ZOOM and s < uienvironment['SEMANTIC_ZOOM_LEVEL']:
            if s != self.prev_scale:
                delta = 1 - ((uienvironment['SEMANTIC_ZOOM_LEVEL'] - s)
                             / uienvironment['SEMANTIC_ZOOM_LEVEL'])
                self.updatePath(1. / delta)

            g2.setPaint(NengoStyle.COLOR_FOREGROUND)
            g2.fill(self.path)

            # g2.fill(self.boundsReference)

        else:
            self.super__setPaint(context)
コード例 #5
0
ファイル: horn.py プロジェクト: tomwhite/alhambra
class SHornUI(PolygonTileUI):
  def __init__(self, t, n):
    self.preTransform = t
    self.n = n
    PolygonTileUI.__init__(self, Color(210, 83, 185), t)
    self.initialiseGraphics()

  def initialiseGraphics(self):
    wiggle=CubicCurve2D.Double(0, 0, 0.3, -0.3, 0.7, 0.3, 1, 0)
    reverseWiggle=CubicCurve2D.Double(1, 0, 0.7, 0.3, 0.3, -0.3, 0, 0)

    self.polygonalTilePath = GeneralPath() 
    self.polygonalTilePath.append(wiggle, 1)

    self.polygonalTilePath.lineTo(math.cos(math.pi / self.n), math.sin(math.pi / self.n))

    t = AffineTransform.getRotateInstance(math.pi / self.n)
    wiggle2 = GeneralPath(reverseWiggle)
    wiggle2.transform(t)
    self.polygonalTilePath.append(wiggle2, 1)

    self.polygonalTilePath.closePath()
    self.polygonalTilePath.transform(self.preTransform)
コード例 #6
0
ファイル: gnomeGrapher.py プロジェクト: pridkett/cvsminer
def addShapes(ShapeDB):
    from java.awt.geom import GeneralPath
    from java.awt import Polygon
    import jarray

    xpoints = jarray.array((10,5,0,5),'i')
    ypoints = jarray.array((5,10,5,0),'i')
    diamond = Polygon(xpoints,ypoints,4);
    shapeDB.addShape(104,diamond)

    xpoints = jarray.array((55, 67, 109, 73, 83, 55, 27, 37, 1, 43),'i')
    ypoints = jarray.array((0, 36, 36, 54, 96, 72, 96, 54, 36, 36),'i')
    star = Polygon(xpoints,ypoints,10)
    shapeDB.addShape(105,star)
    
    triangle = GeneralPath()
    triangle.moveTo(5,0)
    triangle.lineTo(10,5)
    triangle.lineTo(0,5)
    triangle.lineTo(5,0)
    shapeDB.addShape(106,triangle)
コード例 #7
0
ファイル: trimorphic.py プロジェクト: tomwhite/alhambra
  def initialiseGraphics(self):
    self.polygonalTilePath = GeneralPath() 
    self.polygonalTilePath.append(self.wiggle, 1)

    t = AffineTransform.getTranslateInstance(1, 0)
    t.rotate(math.pi / 2)
    wiggle2 = GeneralPath(self.wiggle)
    wiggle2.transform(t)
    self.polygonalTilePath.append(wiggle2, 1)

    t = AffineTransform.getTranslateInstance(1, 1)
    t.rotate(3 * math.pi / 4)
    t.scale(1 / math.sqrt(2), 1 / math.sqrt(2))
    wiggle3 = GeneralPath(self.wiggle)
    wiggle3.transform(t)
    self.polygonalTilePath.append(wiggle3, 1)

    t = AffineTransform.getTranslateInstance(0.5, 1.5)
    t.rotate(5 * math.pi / 4)
    t.scale(1 / math.sqrt(2), 1 / math.sqrt(2))
    wiggle4 = GeneralPath(self.wiggle)
    wiggle4.transform(t)
    self.polygonalTilePath.append(wiggle4, 1)

    t = AffineTransform.getTranslateInstance(0, 1)
    t.rotate(3 * math.pi / 2)
    wiggle5 = GeneralPath(self.wiggle)
    wiggle5.transform(t)
    self.polygonalTilePath.append(wiggle5, 1)

    self.polygonalTilePath.closePath()
    self.polygonalTilePath.transform(self.preTransform)
コード例 #8
0
ファイル: trimorphic.py プロジェクト: tomwhite/alhambra
class TrimorphicUI(PolygonTileUI):
  def __init__(self, t, wiggle=CubicCurve2D.Double(0, 0, 0.5, 0.5, 0.5, -0.5, 1, 0)):
    self.preTransform = t
    self.wiggle = wiggle
    PolygonTileUI.__init__(self, Color(64, 183, 185), t)
    self.initialiseGraphics()

  def initialiseGraphics(self):
    self.polygonalTilePath = GeneralPath() 
    self.polygonalTilePath.append(self.wiggle, 1)

    t = AffineTransform.getTranslateInstance(1, 0)
    t.rotate(math.pi / 2)
    wiggle2 = GeneralPath(self.wiggle)
    wiggle2.transform(t)
    self.polygonalTilePath.append(wiggle2, 1)

    t = AffineTransform.getTranslateInstance(1, 1)
    t.rotate(3 * math.pi / 4)
    t.scale(1 / math.sqrt(2), 1 / math.sqrt(2))
    wiggle3 = GeneralPath(self.wiggle)
    wiggle3.transform(t)
    self.polygonalTilePath.append(wiggle3, 1)

    t = AffineTransform.getTranslateInstance(0.5, 1.5)
    t.rotate(5 * math.pi / 4)
    t.scale(1 / math.sqrt(2), 1 / math.sqrt(2))
    wiggle4 = GeneralPath(self.wiggle)
    wiggle4.transform(t)
    self.polygonalTilePath.append(wiggle4, 1)

    t = AffineTransform.getTranslateInstance(0, 1)
    t.rotate(3 * math.pi / 2)
    wiggle5 = GeneralPath(self.wiggle)
    wiggle5.transform(t)
    self.polygonalTilePath.append(wiggle5, 1)

    self.polygonalTilePath.closePath()
    self.polygonalTilePath.transform(self.preTransform)
コード例 #9
0
from java.awt.geom import GeneralPath
from java.awt import Polygon
import jarray

xpoints = jarray.array((10,5,0,5),'i')
ypoints = jarray.array((5,10,5,0),'i')
diamond = Polygon(xpoints,ypoints,4);
shapeDB.addShape(104,diamond)

xpoints = jarray.array((55, 67, 109, 73, 83, 55, 27, 37, 1, 43),'i')
ypoints = jarray.array((0, 36, 36, 54, 96, 72, 96, 54, 36, 36),'i')
star = Polygon(xpoints,ypoints,10)
shapeDB.addShape(105,star)
 
triangle = GeneralPath()
triangle.moveTo(5,0)
triangle.lineTo(10,5)
triangle.lineTo(0,5)
triangle.lineTo(5,0)
shapeDB.addShape(106,triangle)

コード例 #10
0
class Star():
    def __init__(self, radius, color):
        self.color = color
        self.setSize(radius)

    def setSize(self, size):
        # First triangle, size is radius of circumcircle, center at (0,0)
        self.tri1 = GeneralPath()
        self.tri1.moveTo(size, 0)
        self.tri1.lineTo(int(-0.5 * size), int(0.866 * size))
        self.tri1.lineTo(int(-0.5 * size), int(-0.866 * size))
        self.tri1.closePath()

        # Second triangle like first, but rotated 180 degrees
        self.tri2 = self.tri1.clone()
        t = AffineTransform()
        t.rotate(math.pi)
        self.tri2.transform(t)

    def turn(self, angle):
        t = AffineTransform()
        t.rotate(angle)
        self.tri1.transform(t)
        self.tri2.transform(t)

    def showAt(self, mx, my):
        bg.setPaintColor(self.color)
        t = AffineTransform()
        t.translate(mx, -50 + my % 650)  # Restrict to playground
        # Cloning to avoid side effects
        gp1 = self.tri1.clone()
        gp2 = self.tri2.clone()
        gp1.transform(t)
        gp2.transform(t)
        bg.fillGeneralPath(gp1)
        bg.fillGeneralPath(gp2)
コード例 #11
0
ファイル: icons.py プロジェクト: ctn-waterloo/nengo_java_gui
    def paintIcon(self, g2):
        rectangleSize = self.size - self.PADDING * 2

        # Line
        g2.drawLine(self.PADDING, rectangleSize + self.PADDING,
            rectangleSize + self.PADDING, rectangleSize + self.PADDING)

        # Arrow
        path = GeneralPath()
        path.moveTo(rectangleSize / 2.0 + self.PADDING, rectangleSize)
        path.lineTo(rectangleSize / 2.0 + self.PADDING, self.PADDING)

        # left tick
        path.lineTo(self.PADDING * 2, (self.size / 2.0) - 1)

        # right tick
        path.moveTo(rectangleSize / 2.0 + self.PADDING, self.PADDING)
        path.lineTo(rectangleSize, (self.size / 2.0) - 1)
        g2.draw(path)
コード例 #12
0
ファイル: icons.py プロジェクト: ctn-waterloo/nengo_java_gui
 def __init__(self, image_or_string=None):
     PXImage.__init__(self, image_or_string)
     self.path = GeneralPath()  # transient???
     self.original_bounds = self.bounds
     self.prev_scale = 0
コード例 #13
0
ファイル: icons.py プロジェクト: ctn-waterloo/nengo_java_gui
    def paintIcon(self, g2):
        rectangleSize = self.size - self.PADDING * 2.0
        path = GeneralPath()
        path.moveTo(self.PADDING, rectangleSize / 2.0 + self.PADDING)
        path.lineTo(rectangleSize + self.PADDING, rectangleSize / 2.0 + self.PADDING)

        # up tick
        path.lineTo(rectangleSize / 1.5 + self.PADDING, self.PADDING * 2)

        # down tick
        path.moveTo(rectangleSize + self.PADDING, rectangleSize / 2.0 + self.PADDING)
        path.lineTo(rectangleSize / 1.5 + self.PADDING, rectangleSize)
        g2.draw(path)
コード例 #14
0
ファイル: icons.py プロジェクト: ctn-waterloo/nengo_java_gui
    def paintIcon(self, g2):
        rectangleSize = self.size - self.PADDING * 2
        ticklen = rectangleSize * 0.3

        g2.drawRect(self.PADDING, self.PADDING, rectangleSize, rectangleSize)

        # Double sided diagonal arrow
        arrowpad = self.PADDING + self.STROKE_WIDTH + 1
        rectangleSize = self.size - arrowpad * 2
        path = GeneralPath()

        # ticks
        path.moveTo(arrowpad, rectangleSize + arrowpad)
        path.lineTo(arrowpad, rectangleSize + arrowpad - ticklen)
        path.moveTo(arrowpad, rectangleSize + arrowpad)
        path.lineTo(arrowpad + ticklen, rectangleSize + arrowpad)

        # line
        path.moveTo(arrowpad, rectangleSize + arrowpad)
        path.lineTo(rectangleSize + arrowpad, arrowpad)

        # ticks
        path.lineTo(rectangleSize + arrowpad, arrowpad + ticklen)
        path.moveTo(rectangleSize + arrowpad, arrowpad)
        path.lineTo(rectangleSize + arrowpad - ticklen, arrowpad)
        g2.draw(path)