📄 floatcanvas.py
字号:
LineWidth = 1,
LineColor = "White",
Width = None,
PadSize = 2,
Family = wx.ROMAN,
Position = Position,
LineSpacing = 0.8
)
Canvas.AddPoint(Point, "Red", 4)
Point = N.array((-20, 60), N.float_)
Box = Canvas.AddScaledTextBox("Here is some\ncentered\ntext",
Point,
Size = 4,
Color = "Red",
BackgroundColor = 'LightBlue',
LineWidth = 1,
LineColor = "White",
Width = None,
PadSize = 2,
Family = wx.ROMAN,
Position = "tl",
Alignment = "center",
LineSpacing = 0.8
)
Point = N.array((-20, 20), N.float_)
Box = Canvas.AddScaledTextBox("Here is some\nright aligned\ntext",
Point,
Size = 4,
Color = "Red",
BackgroundColor = 'LightBlue',
LineColor = None,
Width = None,
PadSize = 2,
Family = wx.ROMAN,
Position = "tl",
Alignment = "right",
LineSpacing = 0.8
)
Point = N.array((100, -60), N.float_)
Box = Canvas.AddScaledTextBox("Here is some auto wrapped text. This time it is centered, rather than right aligned.\n\nThe Padding is set to 2.",
Point,
Size = 3,
BackgroundColor = 'White',
LineWidth = 1,
Width = 40,
PadSize = 2.0,
Family = wx.ROMAN,
Position = "cc",
LineSpacing = 0.8,
Alignment = 'center',
)
self.Canvas.ZoomToBB()
def binding2(self, event):
self.Log("I'm the TextBox")
def TestBitmap(self, event= None):
wx.GetApp().Yield(True)
self.UnBindAllMouseEvents()
Canvas = self.Canvas
Canvas.InitAll()
Canvas.AddRectangle((10, 20),
(400, 100),
LineWidth = 3,
LineColor = "Blue",
FillColor = "Red")
bmp = Resources.getMagPlusBitmap()
Canvas.AddText("These are Unscaled Bitmaps:", (140, 90))
Point = (150, 50)
BitMap = Canvas.AddBitmap(bmp, Point, Position = "cc" )
Canvas.AddPoint(Point, Diameter=4, Color="Green")
Point = (200, 50)
BitMap = Canvas.AddBitmap(bmp, Point, Position = "br" )
Canvas.AddPoint(Point, Diameter=4, Color="Green")
Point = (200, 50)
BitMap = Canvas.AddBitmap(bmp, Point, Position = "bl" )
Canvas.AddPoint(Point, Diameter=4, Color="Green")
Point = (200, 50)
BitMap = Canvas.AddBitmap(bmp, Point, Position = "tr" )
Canvas.AddPoint(Point, Diameter=4, Color="Green")
Point = (200, 50)
BitMap = Canvas.AddBitmap(bmp, Point, Position = "tl" )
Canvas.AddPoint(Point, Diameter=4, Color="Green")
Point = (250, 50)
BitMap = Canvas.AddBitmap(bmp, Point, Position = "cr" )
Canvas.AddPoint(Point, Diameter=4, Color="Green")
Point = (250, 50)
BitMap = Canvas.AddBitmap(bmp, Point, Position = "cl" )
Canvas.AddPoint(Point, Diameter=4, Color="Green")
Point = (300, 50)
BitMap = Canvas.AddBitmap(bmp, Point, Position = "tc" )
Canvas.AddPoint(Point, Diameter=4, Color="Green")
Point = (300, 50)
BitMap = Canvas.AddBitmap(bmp, Point, Position = "bc" )
Canvas.AddPoint(Point, Diameter=4, Color="Green")
Canvas.AddScaledText("These are Scaled Bitmaps:", (220, -60), Size = 10, Position = "tr")
Point = (250, -100)
BitMap = Canvas.AddScaledBitmap(bmp, Point, Height = 50, Position = "bc" )
BitMap = Canvas.AddScaledBitmap(bmp, Point, Height = 50, Position = "tc" )
Canvas.AddPoint(Point, Diameter=4, Color="Green")
Point = (300, -100)
BitMap = Canvas.AddScaledBitmap(Resources.getMondrianImage(), Point, Height = 50)
self.Canvas.ZoomToBB()
def DrawMap(self,event = None):
wx.GetApp().Yield(True)
import os, time
self.Canvas.InitAll()
self.Canvas.SetProjectionFun("FlatEarth")
self.BindAllMouseEvents()
## Test of Actual Map Data
#start = time.clock()
self.Log("Loading Map from a File")
wx.GetApp().Yield(True) # so log text will get displayed now.
Shorelines = self.Read_MapGen(os.path.join("data",'world.dat'),stats = 0)
#print "It took %f seconds to load %i shorelines"%(time.clock() - start,len(Shorelines) )
#start = time.clock()
for segment in Shorelines:
self.Canvas.AddLine(segment)
#print "It took %f seconds to add %i shorelines"%(time.clock() - start,len(Shorelines) )
#start = time.clock()
self.Canvas.ZoomToBB()
#print "It took %f seconds to draw %i shorelines"%(time.clock() - start,len(Shorelines) )
def LineTest(self,event = None):
wx.GetApp().Yield(True)
import os, time
# import random
colors = self.colors
Range = (-10,10)
## Test of drawing lots of lines
Canvas = self.Canvas
Canvas.InitAll()
#start = time.clock()
linepoints = []
linecolors = []
linewidths = []
for i in range(2000):
points = (random.randint(Range[0],Range[1]),
random.randint(Range[0],Range[1]),
random.randint(Range[0],Range[1]),
random.randint(Range[0],Range[1]))
linepoints.append(points)
linewidths.append(random.randint(1,10) )
linecolors.append(random.randint(0,len(colors)-1) )
for (points,color,width) in zip(linepoints,linecolors,linewidths):
Canvas.AddLine((points[0:2],points[2:4]), LineWidth = width, LineColor = colors[color])
#print "It took %f seconds to add %i lines"%(time.clock() - start,len(linepoints) )
#start = time.clock()
Canvas.ZoomToBB()
#print "It took %f seconds to draw %i lines"%(time.clock() - start,len(linepoints) )
def ArrowLineTest(self,event = None):
wx.GetApp().Yield(True)
Canvas = self.Canvas
Canvas.InitAll()
# import os, time
## import random
Range = (-100,100)
colors = self.colors
# Lines
for i in range(5):
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,4)
cf = random.randint(0,len(colors)-1)
cl = random.randint(0,len(colors)-1)
al = random.randint(8,20)
aa = random.randint(20,90)
Canvas.AddArrowLine(points,
LineWidth = lw,
LineColor = colors[cl],
ArrowHeadSize = al,
ArrowHeadAngle = aa)
Canvas.ZoomToBB()
def SpeedTest(self,event=None):
wx.GetApp().Yield(True)
BigRange = (-1000,1000)
colors = self.colors
self.UnBindAllMouseEvents()
Canvas = self.Canvas
Canvas.InitAll()
# Pointset
coords = []
for i in range(1000):
Point = (random.uniform(BigRange[0],BigRange[1]),random.uniform(BigRange[0],BigRange[1]))
coords.append( (Point) )
print "Drawing the Points"
start = time.clock()
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(True)
Range = (-10,10)
colors = self.colors
self.UnBindAllMouseEvents()
Canvas = self.Canvas
Canvas.InitAll()
self.ColorObjectsAll = []
self.ColorObjectsLine = []
self.ColorObjectsColor = []
self.ColorObjectsText = []
##One of each object:
# Rectangle
Point = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
lw = random.randint(1,5)
cf = random.randint(0,len(colors)-1)
wh = ( random.randint(1,5), random.randint(1,5) )
self.Rectangle = Canvas.AddRectangle(Point, wh, LineWidth = lw, FillColor = colors[cf])
self.ColorObjectsAll.append(self.Rectangle)
# Ellipse
Point = (random.uniform(Range[0],Range[1]),random.uniform(Range[0],Range[1]))
lw = random.randint(1,5)
cf = random.randint(0,len(colors)-1)
wh = ( random.randint(1,5), random.randint(1,5) )
self.Ellipse = Canvas.AddEllipse(Point, wh, LineWidth = lw, FillColor = colors[cf])
self.ColorObjectsAll.append(self.Ellipse)
# 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))
# Circle
Point = (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(Point, 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]))
# Polygon
## points = []
##
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -