MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Is it possible to create custom drawing procedure for my object?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg113533] Is it possible to create custom drawing procedure for my object?
  • From: Dims <dims12 at hotmail.com>
  • Date: Mon, 1 Nov 2010 05:02:04 -0500 (EST)

Is it possible to define a custom draw procedure for some custom
object? For example, I have some figure, which is defined by two
points

FigureOfMyOwn[{x1,y1},{x2,y2}]

How to do so that this figure will draw like normal Line or Circle
objects?

Graphics[FigureOfMyOwn[{0,0},{2,2}]]

I don't want to define FigureOfMyOwn as a function, which converts to
construction of Lines and Circles, I want it behaves like Circle, i.e.
remain unchanged if used in formulas. Only drawing procedure should be
redefined.

I.e. is it possible to do something correct like this:

Unprotect[Graphics]
Graphics[x_FigureOfMyOwn] := Graphics[Circle[x[[1]], Norm[x[[2]] -
x[[1]]]]]
Protect[Graphics]

?

The approach above doesn't work correctly since it draws

Graphics[FigureOfMyOwn[{0, 0}, {1, 1}]]

but not draws

Graphics[{Line[{{0, 0}, {1, 1}}], FigureOfMyOwn[{0, 0}, {1, 1}]}]

while draws

Graphics[{Line[{{0, 0}, {1, 1}}], Circle[{0, 0}, Sqrt[2]]}]

Thanks.




  • Prev by Date: Re: Simplifying to PolyLog
  • Next by Date: question on passing variable to function by reference
  • Previous by thread: Re: Using the fonts available in the Format>Font menu as part of Style[]?
  • Next by thread: question on passing variable to function by reference