Пример #1
0
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.CreateStatusBar()
        # Add the Canvas
        Canvas = FloatCanvas.FloatCanvas(self,
                                         ProjectionFun=None,
                                         Debug=0,
                                         BackgroundColor="WHITE")

        self.Canvas = Canvas

        Canvas.Bind(FC.EVT_MOTION, self.OnMove)
        Canvas.Bind(FC.EVT_LEFT_UP, self.OnLeftUp)

        self.Bitmaps = []
        ## create the bitmaps first
        for Point in ((-100, -100), (55, 1)):
            print Point
            btm = Resources.getMondrianImage()
            mbtm = MovingBitmap(btm, Point, btm.GetHeight(), Position='cc')
            self.Bitmaps.append((mbtm))
            Canvas.AddObject(mbtm)

        for bmp in self.Bitmaps:
            bmp.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit)
            print bmp.XY

        self.Show(True)

        self.add_again()
        # How can I get all the objects on the canvas?
        # print Canvas.GetObjects()
        # And for each object, can I get position?

        self.MoveObject = None
        self.Moving = False
Пример #2
0
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.CreateStatusBar()            
        # Add the Canvas
        Canvas = NavCanvas.NavCanvas(self,-1,(500,500),
                                          ProjectionFun = None,
                                          Debug = 0,
                                          BackgroundColor = "DARK SLATE BLUE",
                                          ).Canvas
        
        self.Canvas = Canvas

        Canvas.Bind(FC.EVT_MOTION, self.OnMove ) 
        Canvas.Bind(FC.EVT_LEFT_UP, self.OnLeftUp ) 

        Points = N.array(((0,0),
                          (1,0),
                          (0.5, 1)),
                         N.float)
        
        data  = (( (0,0),  1),
                 ( (3,3),  2),
                 ( (-2,3), 2.5 ),
                  )

        for p, L in data:
            Tri = TriangleShape1(p, 1)
            Canvas.AddObject(Tri)
            Tri.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit)

        Circle = MovingCircle( (1, 3), 2, FillColor="Blue")
        Canvas.AddObject(Circle)
        Circle.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit)

        Bitmaps = []
        ## create the bitmaps first
        for Point in ((1,1), (-4,3)):
            Bitmaps.append(MovingBitmap(Resources.getMondrianImage(),
                                  Point,
                                  Height=1,
                                  Position='cc')
                           )
        Line = ConnectorLine(Bitmaps[0], Bitmaps[1], LineWidth=3, LineColor="Red")
        Canvas.AddObject(Line)
        
        
        
        ## then add them to the Canvas, so they are on top of the line
        for bmp in Bitmaps:
            Canvas.AddObject(bmp)
            bmp.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit)

        A = MovingArc((-5, 0),(-2, 2),(-5, 2),
                      LineColor="Red",
                      LineWidth=2,
                      FillColor="green",
                      FillStyle="CrossDiagHatch")
        self.Canvas.AddObject(A)    
        A.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit)

        self.Show(True)
        self.Canvas.ZoomToBB()

        self.MoveObject = None
        self.Moving = False

        return None
Пример #3
0
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.CreateStatusBar()
        # Add the Canvas
        Canvas = NavCanvas.NavCanvas(
            self,
            -1,
            (500, 500),
            ProjectionFun=None,
            Debug=0,
            BackgroundColor="DARK SLATE BLUE",
        ).Canvas

        self.Canvas = Canvas

        Canvas.Bind(FC.EVT_MOTION, self.OnMove)
        Canvas.Bind(FC.EVT_LEFT_UP, self.OnLeftUp)

        Points = N.array(((0, 0), (1, 0), (0.5, 1)), N.float)

        data = (
            ((0, 0), 1),
            ((3, 3), 2),
            ((-2, 3), 2.5),
        )

        for p, L in data:
            Tri = TriangleShape1(p, 1)
            Canvas.AddObject(Tri)
            Tri.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit)

        Circle = MovingCircle((1, 3), 2, FillColor="Blue")
        Canvas.AddObject(Circle)
        Circle.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit)

        Bitmaps = []
        ## create the bitmaps first
        for Point in ((1, 1), (-4, 3)):
            Bitmaps.append(
                MovingBitmap(Resources.getMondrianImage(),
                             Point,
                             Height=1,
                             Position='cc'))
        Line = ConnectorLine(Bitmaps[0],
                             Bitmaps[1],
                             LineWidth=3,
                             LineColor="Red")
        Canvas.AddObject(Line)

        ## then add them to the Canvas, so they are on top of the line
        for bmp in Bitmaps:
            Canvas.AddObject(bmp)
            bmp.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit)

        A = MovingArc((-5, 0), (-2, 2), (-5, 2),
                      LineColor="Red",
                      LineWidth=2,
                      FillColor="green",
                      FillStyle="CrossDiagHatch")
        self.Canvas.AddObject(A)
        A.Bind(FC.EVT_FC_LEFT_DOWN, self.ObjectHit)

        self.Show(True)
        self.Canvas.ZoomToBB()

        self.MoveObject = None
        self.Moving = False

        return None