git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import wx
 | 
						|
 | 
						|
class TestPanel(wx.Panel):
 | 
						|
    def __init__(self, *args, **kw):
 | 
						|
        wx.Panel.__init__(self, *args, **kw)
 | 
						|
        self.Bind(wx.EVT_PAINT, self.OnPaint)
 | 
						|
 | 
						|
    def OnPaint(self, evt):
 | 
						|
        gc = wx.GraphicsContext.Create(wx.PaintDC(self))
 | 
						|
        
 | 
						|
        pen = wx.Pen("navy", 2)
 | 
						|
        gc.SetPen(pen)
 | 
						|
        brush = wx.Brush((255,32,32,128))
 | 
						|
        gc.SetBrush(brush)
 | 
						|
        gc.PushState()
 | 
						|
 | 
						|
        path = gc.CreatePath()
 | 
						|
        path.MoveToPoint(50, 50)
 | 
						|
        path.AddLineToPoint(25,25)
 | 
						|
        path.AddLineToPoint(50,25)
 | 
						|
        path.AddLineToPoint(50,50)
 | 
						|
        path.CloseSubpath()
 | 
						|
        
 | 
						|
        gc.DrawPath(path)
 | 
						|
 | 
						|
        gc.Scale(2,2)
 | 
						|
        gc.Translate(10,5)
 | 
						|
        gc.DrawPath(path)
 | 
						|
 | 
						|
        gc.Translate(50,0)
 | 
						|
        gc.FillPath(path)
 | 
						|
        gc.Translate(0,5)
 | 
						|
        gc.StrokePath(path)
 | 
						|
        gc.Translate(0,5)
 | 
						|
 | 
						|
        brush = wx.Brush((32,32,255,128))
 | 
						|
        gc.SetBrush(brush)
 | 
						|
 | 
						|
        gc.FillPath(path)
 | 
						|
        gc.Translate(50,0)
 | 
						|
        gc.DrawPath(path)
 | 
						|
 | 
						|
        gc.PopState()
 | 
						|
 | 
						|
        points = [ (5.2, 5.9),
 | 
						|
                   (50, 50),
 | 
						|
                   (35, 50),
 | 
						|
                   (25,40),
 | 
						|
                   wx.Point2D(20.5,50.9),
 | 
						|
                   wx.Point2D(5,25),
 | 
						|
                   (5,6)
 | 
						|
                   ]
 | 
						|
        
 | 
						|
        gc.Translate(0, 150)
 | 
						|
        gc.DrawLines(points)
 | 
						|
        gc.Translate(75, 0)
 | 
						|
        gc.StrokeLines(points)
 | 
						|
 | 
						|
 | 
						|
        begin = [ (0,0),
 | 
						|
                  (0,10),
 | 
						|
                  (0,20),
 | 
						|
                  (0,30),
 | 
						|
                  (0,40),
 | 
						|
                  (0,50),
 | 
						|
                  ]
 | 
						|
 | 
						|
        end   = [ (50,0),
 | 
						|
                  (50,10),
 | 
						|
                  (50,20),
 | 
						|
                  (50,30),
 | 
						|
                  (50,40),
 | 
						|
                  (50,50),
 | 
						|
                  ]
 | 
						|
 | 
						|
        # in a floating point coordinate system the center of the
 | 
						|
        # pixel is actually at x+0.5, y+0.5, so with anti-aliasing
 | 
						|
        # turned on we'll get a crisper line by positioning our line
 | 
						|
        # segments at the 0.5 offset.  For this test we'll just let
 | 
						|
        # the GC do the translation for us.
 | 
						|
        gc.Translate(0.5, 0.5)
 | 
						|
        
 | 
						|
        pen = wx.Pen("purple", 1)
 | 
						|
        gc.SetPen(pen)
 | 
						|
 | 
						|
        gc.Translate(75, 0)
 | 
						|
        gc.StrokeLineSegements(begin, end)
 | 
						|
        
 | 
						|
        gc.Translate(75, 0)
 | 
						|
        gc.Scale(2,2)
 | 
						|
        gc.StrokeLineSegements(begin, end)
 | 
						|
        gc.DrawLines(points)
 | 
						|
 | 
						|
        del path
 | 
						|
        
 | 
						|
 | 
						|
app = wx.App(False)
 | 
						|
frm = wx.Frame(None)
 | 
						|
pnl = TestPanel(frm)
 | 
						|
frm.Show()
 | 
						|
app.MainLoop()
 |