-
+#!/usr/bin/env python2.3
try:
import Numeric
import RandomArray
if __name__ == "__main__": # parse options if run stand-alone
# check options:
import sys, getopt
- optlist, args = getopt.getopt(sys.argv[1:],'l',["local","all","text","map","stext","hit","hitf","animate","speed","temp"])
+ optlist, args = getopt.getopt(sys.argv[1:],'l',["local","all","text","map","stext","hit","hitf","animate","speed","temp","props"])
for opt in optlist:
if opt[0] == "--all":
StartUpDemo = "speed"
elif opt[0] == "--temp":
StartUpDemo = "temp"
+ elif opt[0] == "--props":
+ StartUpDemo = "props"
import wx
import time, random
self.Bind(wx.EVT_MENU, self.Clear, item)
item = draw_menu.Append(-1, "&Hit Test","Run a test of the hit test code")
self.Bind(wx.EVT_MENU, self.TestHitTest, item)
- item = draw_menu.Append(-1, "&Hit Test Foreground","Run a test of the hit test code with a foreground Object")
+ item = draw_menu.Append(-1, "Hit Test &Foreground","Run a test of the hit test code with a foreground Object")
self.Bind(wx.EVT_MENU, self.TestHitTestForeground, item)
item = draw_menu.Append(-1, "&Animation","Run a test of Animation")
self.Bind(wx.EVT_MENU, self.TestAnimation, item)
item = draw_menu.Append(-1, "&Speed","Run a test of Drawing Speed")
self.Bind(wx.EVT_MENU, self.SpeedTest, item)
+ item = draw_menu.Append(-1, "Change &Properties","Run a test of Changing Object Properties")
+ self.Bind(wx.EVT_MENU, self.PropertiesChangeTest, item)
MenuBar.Append(draw_menu, "&Tests")
view_menu = wx.Menu()
self.Canvas = NavCanvas.NavCanvas(self,
-1,
(500,500),
- Debug = 1,
+ Debug = 0,
BackgroundColor = "DARK SLATE BLUE")
wx.EVT_CLOSE(self, self.OnCloseWindow)
self.Destroy()
def DrawTest(self,event=None):
- wx.GetApp().Yield(True)
+ wx.GetApp().Yield()
# import random
# import RandomArray
Range = (-10,10)
cf = random.randint(0,len(colors)-1)
h = random.randint(1,5)
w = random.randint(1,5)
- Canvas.AddRectangle(x,y,h,w,LineWidth = lw,FillColor = colors[cf])
+ Canvas.AddRectangle(x,y,w,h,LineWidth = lw,FillColor = colors[cf])
# Ellipses
for i in range(3):
w = random.randint(1,5)
Canvas.AddEllipse(x,y,h,w,LineWidth = lw,FillColor = colors[cf])
-## # Dots -- Does anyone need this?
-## for i in range(5):
-## x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
-## D = random.randint(1,50)
-## lw = random.randint(1,5)
-## cf = random.randint(0,len(colors)-1)
-## cl = random.randint(0,len(colors)-1)
-## Canvas.AddDot(x,y,D,LineWidth = lw,LineColor = colors[cl],FillColor = colors[cf])
+ # Points
+ for i in range(5):
+ x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
+ D = random.randint(1,50)
+ cf = random.randint(0,len(colors)-1)
+ Canvas.AddPoint((x,y), Color = colors[cf], Diameter = D)
# Circles
for i in range(5):
having to re-draw the whole background.
"""
- print "Running TestAnimation"
- wx.GetApp().Yield(True)
+ wx.GetApp().Yield()
Range = (-10,10)
self.Range = Range
# Now the Foreground Object:
C = Canvas.AddCircle(0,0,7,LineWidth = 2,LineColor = "Black",FillColor = "Red", InForeground = True)
- T = Canvas.AddScaledText("Click to Move",0,0, Size = 0.8, Position = 'cc', InForeground = True)
+ T = Canvas.AddScaledText("Click to Move",0,0, Size = 0.6, Position = 'cc', InForeground = True)
C.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.MoveMe)
C.Text = T
self.dy = random.uniform(Range[0]/4,Range[1]/4)
#import time
#start = time.time()
- self.NumTimeSteps = 500
+ self.NumTimeSteps = 200
self.TimeStep = 1
self.Timer.Start(self.FrameDelay)
#print "Did %i frames in %f seconds"%(N, (time.time() - start) )
def TestHitTest(self,event=None):
- wx.GetApp().Yield(True)
+ wx.GetApp().Yield()
self.UnBindAllMouseEvents()
Canvas = self.Canvas
dx = 80
dy = 40
x,y = 20, 20
+ FontSize = 8
#Add one that is not HitAble
Canvas.AddRectangle(x, y, w, h, LineWidth = 2)
- Canvas.AddText("Not Hit-able", x, y, Position = "bl")
+ Canvas.AddText("Not Hit-able", x, y, Size = FontSize, Position = "bl")
x += dx
- R = Canvas.AddRectangle(x, y, w, h,LineWidth = 2)
+ R = Canvas.AddRectangle(x, y, w, h, LineWidth = 2)
R.Name = "Line Rectangle"
R.HitFill = False
+ R.HitLineWidth = 5 # Makes it a little easier to hit
R.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.RectGotHit)
- Canvas.AddText("Left Click Line", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
-
+ Canvas.AddText("Left Click Line", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "Red"
R = Canvas.AddRectangle(x, y, w, h, LineWidth = 2, FillColor = color)
R.Name = color + "Rectangle"
R.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.RectGotHit)
- Canvas.AddText("Left Click Fill", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Left Click Fill", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x = 20
y += dy
R.Name = color + " Rectangle"
R.Bind(FloatCanvas.EVT_FC_RIGHT_DOWN, self.RectGotHit)
Canvas.AddText("Right Click Fill", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "Grey"
R = Canvas.AddEllipse(x, y, w, h,LineWidth = 2,FillColor = color)
R.Name = color +" Ellipse"
R.Bind(FloatCanvas.EVT_FC_RIGHT_DOWN, self.RectGotHit)
- Canvas.AddText("Right Click Fill", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Right Click Fill", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "Brown"
R.Name = color + " Circle"
R.HitFill = True
R.Bind(FloatCanvas.EVT_FC_LEFT_DCLICK, self.RectGotHit)
- Canvas.AddText("Left D-Click Fill", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Left D-Click Fill", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x = 20
y += dy
R = Canvas.AddCircle(x+dx/2, y+dy/2, dx/4, LineWidth = 2,FillColor = color)
R.Name = color + " Circle"
R.Bind(FloatCanvas.EVT_FC_LEFT_UP, self.RectGotHit)
- Canvas.AddText("Left Up Fill", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Left Up Fill", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "White"
R = Canvas.AddRectangle(x, y, w, h, LineWidth = 2, FillColor = color)
R.Name = color + " Rectangle"
R.Bind(FloatCanvas.EVT_FC_MIDDLE_DOWN, self.RectGotHit)
- Canvas.AddText("Middle Down", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Middle Down", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "AQUAMARINE"
R = Canvas.AddRectangle(x, y, w, h, LineWidth = 2, FillColor = color)
R.Name = color + " Rectangle"
R.Bind(FloatCanvas.EVT_FC_MIDDLE_UP, self.RectGotHit)
- Canvas.AddText("Middle Up", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Middle Up", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x = 20
y += dy
R = Canvas.AddRectangle(x, y, w, h, LineWidth = 2, FillColor = color)
R.Name = color + " Rectangle"
R.Bind(FloatCanvas.EVT_FC_MIDDLE_DCLICK, self.RectGotHit)
- Canvas.AddText("Middle DoubleClick", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Middle DoubleClick", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "CYAN"
R = Canvas.AddRectangle(x, y, w, h, LineWidth = 2, FillColor = color)
R.Name = color + " Rectangle"
R.Bind(FloatCanvas.EVT_FC_RIGHT_UP, self.RectGotHit)
- Canvas.AddText("Right Up", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Right Up", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "LIME GREEN"
R = Canvas.AddRectangle(x, y, w, h, LineWidth = 2, FillColor = color)
R.Name = color + " Rectangle"
R.Bind(FloatCanvas.EVT_FC_RIGHT_DCLICK, self.RectGotHit)
- Canvas.AddText("Right Double Click", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Right Double Click", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x = 20
y += dy
R.Name = color
R.Bind(FloatCanvas.EVT_FC_RIGHT_DOWN, self.RectGotHitRight)
R.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.RectGotHitLeft)
- Canvas.AddText("L and R Click", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("L and R Click", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "SALMON"
R = Canvas.AddRectangle(x, y, w, h, LineWidth = 2, FillColor = color)
R.Name = color + " Rectangle"
R.Bind(FloatCanvas.EVT_FC_ENTER_OBJECT, self.RectMouseOver)
- Canvas.AddText("Mouse Enter", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Mouse Enter", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "MEDIUM VIOLET RED"
R = Canvas.AddRectangle(x, y, w, h, LineWidth = 2, FillColor = color)
R.Name = color
R.Bind(FloatCanvas.EVT_FC_LEAVE_OBJECT, self.RectMouseLeave)
- Canvas.AddText("Mouse Leave", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Mouse Leave", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x = 20
y += dy
R.Name = color
R.Bind(FloatCanvas.EVT_FC_ENTER_OBJECT, self.RectMouseOver)
R.Bind(FloatCanvas.EVT_FC_LEAVE_OBJECT, self.RectMouseLeave)
- Canvas.AddText("Enter and Leave", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Enter and Leave", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "WHEAT"
R.Name = color
R.Bind(FloatCanvas.EVT_FC_ENTER_OBJECT, self.RectMouseOver)
R.Bind(FloatCanvas.EVT_FC_LEAVE_OBJECT, self.RectMouseLeave)
- Canvas.AddText("Mouse Enter&Leave", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Mouse Enter&Leave", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "KHAKI"
R.Name = color
R.Bind(FloatCanvas.EVT_FC_ENTER_OBJECT, self.RectMouseOver)
R.Bind(FloatCanvas.EVT_FC_LEAVE_OBJECT, self.RectMouseLeave)
- Canvas.AddText("Mouse ENter&Leave", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Mouse ENter&Leave", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x = 20
y += dy
L = Canvas.AddLine(( (x, y), (x+10, y+10), (x+w, y+h) ), LineWidth = 2, LineColor = "Red")
L.Name = "A Line"
L.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.RectGotHitLeft)
- Canvas.AddText("Left Down", x, y, Position = "bl")
- Canvas.AddText(L.Name, x, y+h, Position = "tl")
+ Canvas.AddText("Left Down", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(L.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "SEA GREEN"
R = Canvas.AddPolygon(Points, LineWidth = 2, FillColor = color)
R.Name = color + " Polygon"
R.Bind(FloatCanvas.EVT_FC_RIGHT_DOWN, self.RectGotHitRight)
- Canvas.AddText("RIGHT_DOWN", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("RIGHT_DOWN", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x += dx
color = "Red"
R = Canvas.AddPointSet(Points, Diameter = 4, Color = color)
R.Name = "PointSet"
R.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.PointSetGotHit)
- Canvas.AddText("LEFT_DOWN", x, y, Position = "bl")
- Canvas.AddText(R.Name, x, y+h, Position = "tl")
+ Canvas.AddText("LEFT_DOWN", x, y, Size = FontSize, Position = "bl")
+ Canvas.AddText(R.Name, x, y+h, Size = FontSize, Position = "tl")
x = 20
y += dy
T = Canvas.AddText("Hit-able Text", x, y, Size = 15, Color = "Red", Position = 'tl')
T.Name = "Hit-able Text"
T.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.RectGotHitLeft)
- Canvas.AddText("Left Down", x, y, Position = "bl")
+ Canvas.AddText("Left Down", x, y, Size = FontSize, Position = "bl")
x += dx
T = Canvas.AddScaledText("Scaled Text", x, y, Size = 1./2*h, Color = "Pink", Position = 'bl')
Canvas.AddPointSet( (x, y), Diameter = 3)
T.Name = "Scaled Text"
T.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.RectGotHitLeft)
- Canvas.AddText("Left Down", x, y, Position = "tl")
+ Canvas.AddText("Left Down", x, y, Size = FontSize, Position = "tl")
self.Canvas.ZoomToBB()
def TestHitTestForeground(self,event=None):
- print "Running: TestHitTestForeground"
- wx.GetApp().Yield(True)
+ wx.GetApp().Yield()
self.UnBindAllMouseEvents()
Canvas = self.Canvas
def TestText(self, event= None):
- wx.GetApp().Yield(True)
+ wx.GetApp().Yield()
self.BindAllMouseEvents()
Canvas = self.Canvas
# Text
String = "Some text"
-## for i in range(10):
-## ts = random.randint(10,40)
-## cf = random.randint(0,len(colors)-1)
-## x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
self.Canvas.AddText("Top Left",x,y,Size = 14,Color = "Yellow",BackgroundColor = "Blue", Position = "tl")
self.Canvas.AddText("Bottom Left",x,y,Size = 14,Color = "Cyan",BackgroundColor = "Black",Position = "bl")
self.Canvas.AddText("Top Right",x,y,Size = 14,Color = "Black",BackgroundColor = "Cyan",Position = "tr")
self.Canvas.ZoomToBB()
def TestScaledText(self, event= None):
- wx.GetApp().Yield(True)
+ wx.GetApp().Yield()
self.BindAllMouseEvents()
Canvas = self.Canvas
self.Canvas.ZoomToBB()
def DrawMap(self,event = None):
- wx.GetApp().Yield(True)
+ wx.GetApp().Yield()
import os, time
self.BindAllMouseEvents()
def LineTest(self,event = None):
- wx.GetApp().Yield(True)
+ wx.GetApp().Yield()
import os, time
# import random
colors = self.colors
#print "It took %f seconds to draw %i lines"%(time.clock() - start,len(linepoints) )
def SpeedTest(self,event=None):
- wx.GetApp().Yield(True)
-# import random
-# import RandomArray
+ wx.GetApp().Yield()
BigRange = (-1000,1000)
colors = self.colors
Canvas.ClearAll()
Canvas.SetProjectionFun(None)
- # Lots of Text
- String = "Unscaled text"
+ # Pointset
coords = []
- text = []
- for i in range(5000):
+ for i in range(1000):
x,y = (random.uniform(BigRange[0],BigRange[1]),random.uniform(BigRange[0],BigRange[1]))
coords.append( (x,y) )
- print "Drawing the Numbers"
+ print "Drawing the Points"
start = time.clock()
- for i in xrange( len(coords) ):
- Canvas.AddText("%i"%(i),
- coords[i][0],
- coords[i][1],
- Size = 12,
- Position = "cc",
- BackgroundColor = "White")
- print "It took %s seconds to add the numbers"%(time.clock() - start)
-
-
-## ObjectList = []
-
-## print "Building a list of lots of random objects"
-## ## Random tests of everything:
-## def MakeRange():
-## while True:
-## Range = ( random.randint(BigRange[0],BigRange[1]), random.randint(BigRange[0],BigRange[1]) )
-## if abs (Range[0] - Range[1]) < 10:
-## continue
-## if Range[0] > Range[1]:
-## Range = ( Range[1], Range[0] )
-## break
-## return Range
-
-## # Rectangles
-## for i in range(300):
-## Range = MakeRange()
-## x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
-## lw = random.randint(1,5)
-## cf = random.randint(0,len(colors)-1)
-## h = random.randint(1, Range[1] - Range[0])
-## w = random.randint(1, Range[1] - Range[0])
-## ObjectList.append(FloatCanvas.Rectangle(x,y,h,w,LineWidth = lw,FillColor = colors[cf]))
+ for Point in coords:
+ Canvas.AddPoint(Point, Diameter = 4)
+ print "It took %s seconds to add the points"%(time.clock() - start)
+ Canvas.ZoomToBB()
+
+ def PropertiesChangeTest(self,event=None):
+ wx.GetApp().Yield()
+
+ Range = (-10,10)
+ colors = self.colors
+
+ self.UnBindAllMouseEvents()
+ Canvas = self.Canvas
+
+ Canvas.ClearAll()
+ Canvas.SetProjectionFun(None)
+
+ self.ColorObjectsAll = []
+ self.ColorObjectsLine = []
+ self.ColorObjectsColor = []
+ self.ColorObjectsText = []
+ ##One of each object:
+ # Rectangle
+ x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
+ lw = random.randint(1,5)
+ cf = random.randint(0,len(colors)-1)
+ h = random.randint(1,5)
+ w = random.randint(1,5)
+ self.Rectangle = Canvas.AddRectangle(x,y,w,h,LineWidth = lw,FillColor = colors[cf])
+ self.ColorObjectsAll.append(self.Rectangle)
-## # Ellipses
-## for i in range(300):
-## Range = MakeRange()
-## x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
-## lw = random.randint(1,5)
-## cf = random.randint(0,len(colors)-1)
-## h = random.randint(1, Range[1] - Range[0])
-## w = random.randint(1, Range[1] - Range[0])
-## ObjectList.append(FloatCanvas.Ellipse(x,y,h,w,LineWidth = lw,FillColor = colors[cf]))
+ # Ellipse
+ x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
+ lw = random.randint(1,5)
+ cf = random.randint(0,len(colors)-1)
+ h = random.randint(1,5)
+ w = random.randint(1,5)
+ self.Ellipse = Canvas.AddEllipse(x,y,h,w,LineWidth = lw,FillColor = colors[cf])
+ self.ColorObjectsAll.append(self.Ellipse)
-
-## # Circles
-## for i in range(500):
-## Range = MakeRange()
-## x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
-## D = random.randint(1, (Range[1] - Range[0]) / 2)
-## lw = random.randint(1,5)
-## cf = random.randint(0,len(colors)-1)
-## cl = random.randint(0,len(colors)-1)
-## ObjectList.append(FloatCanvas.Circle(x,y,D,LineWidth = lw,LineColor = colors[cl],FillColor = colors[cf]))
-## #ObjectList.append(FloatCanvas.Text("Circle # %i"%(i),x,y,Size = 12,BackgroundColor = None,Position = "cc"))
+ # Point
+ xy = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
+ D = random.randint(1,50)
+ lw = random.randint(1,5)
+ cf = random.randint(0,len(colors)-1)
+ cl = random.randint(0,len(colors)-1)
+ self.ColorObjectsColor.append(Canvas.AddPoint(xy, colors[cf], D))
-## # Lines
-## for i in range(500):
-## Range = MakeRange()
-## points = []
-## for j in range(random.randint(2,100)):
-## point = (random.randint(Range[0],Range[1]),random.randint(Range[0],Range[1]))
-## points.append(point)
-## lw = random.randint(1,10)
-## cf = random.randint(0,len(colors)-1)
-## cl = random.randint(0,len(colors)-1)
-## ObjectList.append(FloatCanvas.Line(points, LineWidth = lw, LineColor = colors[cl]) )
+ # Circle
+ x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
+ D = random.randint(1,5)
+ lw = random.randint(1,5)
+ cf = random.randint(0,len(colors)-1)
+ cl = random.randint(0,len(colors)-1)
+ self.Circle = Canvas.AddCircle(x,y,D,LineWidth = lw,LineColor = colors[cl],FillColor = colors[cf])
+ self.ColorObjectsAll.append(self.Circle)
+
+ # Line
+ points = []
+ for j in range(random.randint(2,10)):
+ point = (random.randint(Range[0],Range[1]),random.randint(Range[0],Range[1]))
+ points.append(point)
+ lw = random.randint(1,10)
+ cf = random.randint(0,len(colors)-1)
+ cl = random.randint(0,len(colors)-1)
+ self.ColorObjectsLine.append(Canvas.AddLine(points, LineWidth = lw, LineColor = colors[cl]))
-## # Polygons
-## for i in range(300):
-## Range = MakeRange()
-## points = []
-## for j in range(random.randint(2,60)):
-## point = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
-## points.append(point)
-## lw = random.randint(1,6)
-## cf = random.randint(0,len(colors)-1)
-## cl = random.randint(0,len(colors)-1)
-## ObjectList.append(FloatCanvas.Polygon(points,
-## LineWidth = lw,
-## LineColor = colors[cl],
-## FillColor = colors[cf],
-## FillStyle = 'Solid') )
-## random.shuffle(ObjectList)
-## print "Adding lots of random objects"
-## start = time.clock()
-## for Object in ObjectList:
-## Canvas.AddObject(Object)
-## print "It took %s Seconds to add %i objects "%(time.clock() - start, len(ObjectList) )
-
-## ## Pointset
-## for i in range(100):
-## points = []
-## points = RandomArray.uniform(Range[0],Range[1],(100,2))
-## cf = random.randint(0,len(colors)-1)
-## D = random.randint(1,4)
-## Canvas.AddPointSet(points, Color = colors[cf], Diameter = D)
+ # Polygon
+## points = []
+## for j in range(random.randint(2,6)):
+## point = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
+## points.append(point)
+ points = RandomArray.uniform(Range[0],Range[1],(6,2))
+ lw = random.randint(1,6)
+ cf = random.randint(0,len(colors)-1)
+ cl = random.randint(0,len(colors)-1)
+ self.ColorObjectsAll.append(Canvas.AddPolygon(points,
+ LineWidth = lw,
+ LineColor = colors[cl],
+ FillColor = colors[cf],
+ FillStyle = 'Solid'))
+
+ ## Pointset
+ points = RandomArray.uniform(Range[0],Range[1],(100,2))
+ cf = random.randint(0,len(colors)-1)
+ D = random.randint(1,4)
+ self.PointSet = Canvas.AddPointSet(points, Color = colors[cf], Diameter = D)
+ self.ColorObjectsColor.append(self.PointSet)
+ ## Point
+ point = RandomArray.uniform(Range[0],Range[1],(2,))
+ cf = random.randint(0,len(colors)-1)
+ D = random.randint(1,4)
+ self.Point = Canvas.AddPoint(point, Color = colors[cf], Diameter = D)
+ self.ColorObjectsColor.append(self.Point)
+
+ # Text
+ String = "Unscaled text"
+ ts = random.randint(10,40)
+ cf = random.randint(0,len(colors)-1)
+ x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
+ self.ColorObjectsText.append(Canvas.AddText(String, x, y, Size = ts, Color = colors[cf], Position = "cc"))
+
+ # Scaled Text
+ String = "Scaled text"
+ ts = random.random()*3 + 0.2
+ cf = random.randint(0,len(colors)-1)
+ x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
+ self.ColorObjectsText.append(Canvas.AddScaledText(String, x, y, Size = ts, Color = colors[cf], Position = "cc"))
-## # Scaled Text
-## String = "Scaled text"
-## for i in range(30):
-## ts = random.random()*3 + 0.2
-## cf = random.randint(0,len(colors)-1)
-## x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
-## Canvas.AddScaledText(String, x, y, Size = ts, Color = colors[cf], Position = "cc")
+ # A "Button"
+ Button = Canvas.AddRectangle(-10, -12, 20, 3, LineStyle = None, FillColor = "Red")
+ Canvas.AddScaledText("Click Here To Change Properties",
+ 0, -10.5,
+ Size = 0.7,
+ Color = "Black",
+ Position = "cc")
+
+ Button.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.ChangeProperties)
Canvas.ZoomToBB()
+ def ChangeProperties(self, Object = None):
+ colors = self.colors
+ Range = (-10,10)
+
+ for Object in self.ColorObjectsAll:
+ pass
+ Object.SetFillColor(colors[random.randint(0,len(colors)-1)])
+ Object.SetLineColor(colors[random.randint(0,len(colors)-1)])
+ Object.SetLineWidth(random.randint(1,7))
+ Object.SetLineStyle(FloatCanvas.DrawObject.LineStyleList.keys()[random.randint(0,5)])
+ for Object in self.ColorObjectsLine:
+ Object.SetLineColor(colors[random.randint(0,len(colors)-1)])
+ Object.SetLineWidth(random.randint(1,7))
+ Object.SetLineStyle(FloatCanvas.DrawObject.LineStyleList.keys()[random.randint(0,5)])
+ for Object in self.ColorObjectsColor:
+ Object.SetColor(colors[random.randint(0,len(colors)-1)])
+ for Object in self.ColorObjectsText:
+ Object.SetColor(colors[random.randint(0,len(colors)-1)])
+ Object.SetBackgroundColor(colors[random.randint(0,len(colors)-1)])
+ self.Circle.SetDiameter(random.randint(1,10))
+ self.PointSet.SetDiameter(random.randint(1,8))
+ self.Point.SetDiameter(random.randint(1,8))
+ for Object in (self.Rectangle, self.Ellipse):
+ x,y = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
+ w,h = random.randint(1,5), random.randint(1,5)
+ Object.SetShape(x,y,w,h)
+
+ self.Canvas.Draw(Force = True)
def TempTest(self, event= None):
- "Running the Temporary test"
- wx.GetApp().Yield(True)
+ wx.GetApp().Yield()
self.UnBindAllMouseEvents()
Canvas = self.Canvas
Canvas.ClearAll()
Canvas.SetProjectionFun(None)
-# import random
-# import RandomArray
Range = (-10,10)
# Create a random Polygon
elif StartUpDemo == "temp":
"starting temp Test"
frame.TempTest()
+ elif StartUpDemo == "props":
+ "starting PropertiesChange Test"
+ frame.PropertiesChangeTest()
return True