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.