I made a plot-canvas% class that I use. The new plot package made it pretty easy. But it doesn&#39;t support the rotation, etc functionality from the snip. It does, however, support printing which is nice.<br><br>On Monday, February 6, 2012, Neil Toronto &lt;<a href="mailto:neil.toronto@gmail.com">neil.toronto@gmail.com</a>&gt; wrote:<br>
&gt; Yes, because a plot is a snip%. It&#39;s easy to do something quick and dirty.<br>&gt;<br>&gt; But doing it right takes more than just a few object creations and method calls. You also need to disable edit operations, hide the caret, etc., without disabling the editor itself. If it&#39;s disabled entirely, it won&#39;t receive mouse events.<br>
&gt;<br>&gt; So it&#39;s... easy, but not entirely straightforward? That&#39;s probably the best description, and also why it might be a good idea for me to add `plot-canvas&#39; and `plot3d-canvas&#39; functions, or a plot-canvas% class.<br>
&gt;<br>&gt; Neil ⊥<br>&gt;<br>&gt; On 02/06/2012 06:48 PM, Robby Findler wrote:<br>&gt;&gt;<br>&gt;&gt; Just to be sure I&#39;m understanding: you can put this into any GUI where<br>&gt;&gt; you can put an editor-canvas% object, right? So it should just be a<br>
&gt;&gt; couple of object creations and method calls to get this going?<br>&gt;&gt;<br>&gt;&gt; Robby<br>&gt;&gt;<br>&gt;&gt; On Mon, Feb 6, 2012 at 5:41 PM, Neil Toronto&lt;<a href="mailto:neil.toronto@gmail.com">neil.toronto@gmail.com</a>&gt;  wrote:<br>
&gt;&gt;&gt;<br>&gt;&gt;&gt; On 02/06/2012 04:14 AM, Nikolaus Klepp wrote:<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; Hi!<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; When I create a 3D plot in DrRacket, I can rotate the plot by clicking on<br>
&gt;&gt;&gt;&gt; it<br>&gt;&gt;&gt;&gt; and dragging the mouse. Now I would like to embed the same plot with the<br>&gt;&gt;&gt;&gt; same<br>&gt;&gt;&gt;&gt; ability in my GUI. Is there an easy way to do that?<br>&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>&gt;&gt;&gt; Great idea!<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Unfortunately, I didn&#39;t think of making an easy way to do it. Fortunately,<br>&gt;&gt;&gt; `plot&#39; already does something similar: if you set (plot-new-window? #t),<br>
&gt;&gt;&gt; plots appear on a canvas in a new frame. You just need to do that without<br>&gt;&gt;&gt; the frame.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; The relevant code is in &quot;&lt;racket-dir&gt;/collects/plot/common/gui.rkt&quot;,<br>
&gt;&gt;&gt; specifically the `make-snip-frame&#39; function.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; The basic idea is to make a canvas containing a single read-only-text% that<br>&gt;&gt;&gt; is initially writable, insert the snip (which you get from `plot-snip&#39; or<br>
&gt;&gt;&gt; `plot3d-snip&#39;), and then set the text to read-only. If you want to change<br>&gt;&gt;&gt; the plot, set the text writable, delete the snip, insert the new one, and<br>&gt;&gt;&gt; set it read-only again.<br>
&gt;&gt;&gt;<br>&gt;&gt;&gt; If you don&#39;t mind my asking, what are you plotting in your gui?<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; Neil ⊥<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; ____________________<br>&gt;&gt;&gt;  Racket Users list:<br>
&gt;&gt;&gt;  <a href="http://lists.racket-lang.org/users">http://lists.racket-lang.org/users</a><br>&gt;<br>&gt; ____________________<br>&gt;  Racket Users list:<br>&gt;  <a href="http://lists.racket-lang.org/users">http://lists.racket-lang.org/users</a><br>
&gt;