Subscribe Bookmark RSS Feed

Adding Points to a graphbox

statcon

Community Trekker

Joined:

Dec 21, 2011

Hi,

i created an interaktive graph. Now i need to add points (or more general: geometric shapes) to the graphbox.

This should be done on a mousklick using MouseTrap().

I thought of soemthing like that:

// Ad a marker to the graph at the position where the mouse was pressed

::click = function({x,y},

  ::g << Marker(MarkerState(3), x, y);

  ::g << Circle(x, y, PixelRadius(10));

);

::w = New Window("Test",

  // Some other components (Textboxes...)

  ::g = Graph Box(

                    FrameSize( 300, 300 ),

                    Mousetrap( ::click( x, y ), {} )

          )

);

But sadly this does not work. Is there a way to do something like that?

Thanks for any hints!

1 ACCEPTED SOLUTION

Accepted Solutions
David_Burnham

Super User

Joined:

Jul 13, 2011

Solution

A couple of points:

- coordinates are typically expressed in a list or matrix format

- the graphical functions operate within a graphics script

The following should work:

::click = function({x,y},

               pos = {};

               InsertInto(pos,x);

               InsertInto(pos,y);

       ::g[FrameBox(1)] << Add Graphics Script(

                        Marker(Marker State(3), pos) ;

                         Circle(pos, PixelRadius(10));

               )

);

-Dave

-Dave
2 REPLIES
David_Burnham

Super User

Joined:

Jul 13, 2011

Solution

A couple of points:

- coordinates are typically expressed in a list or matrix format

- the graphical functions operate within a graphics script

The following should work:

::click = function({x,y},

               pos = {};

               InsertInto(pos,x);

               InsertInto(pos,y);

       ::g[FrameBox(1)] << Add Graphics Script(

                        Marker(Marker State(3), pos) ;

                         Circle(pos, PixelRadius(10));

               )

);

-Dave

-Dave
statcon

Community Trekker

Joined:

Dec 21, 2011

Thanks it works exactly as i need it!