Mapping Bezier curve to surface. Locator problem, still.
- To: mathgroup at smc.vnet.net
- Subject: [mg124568] Mapping Bezier curve to surface. Locator problem, still.
- From: Chris Young <cy56 at comcast.net>
- Date: Wed, 25 Jan 2012 07:02:50 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
Here's a pretty concise way to map curves to surfaces. The tee-arrow notation for pure functions makes the code a little clearer, I think. I still can't figure out how to keep the mouse movement from being captured by the locators. I.e., there's no way I can rotate the 3D plot. Maybe not possible using Manipulate. http://home.comcast.net/~cy56/Mma/BezCurveToSurfacePic.png http://home.comcast.net/~cy56/Mma/BezCurveToSurface.nb Manipulate[ Grid [ { { LocatorPane[ Dynamic @ P, Show[ ParametricPlot[\[HorizontalLine]Bez[P, t], {t, 0, 1}], Graphics @ {Dotted, Line[P]}, PlotRange -> 2, Axes -> True ], {{-2, -2}, {2, 2}, {.25, .25}} ], Show[ParametricPlot3D[ {u, v, u v}, {u, -2, 2}, {v, -2, 2}, PlotRange -> 2, Mesh -> False, PlotStyle -> Opacity[opac] ], ParametricPlot3D[ (f \[Function] {f[[1]], f[[2]], f[[1]] * f[[2]]})@ \[HorizontalLine]Bez[P, t], {t, 0, 1}, PlotRange -> 2 ] /. Line[pts_, rest___] :> Tube[pts, 0.05, rest] ] } } ], {{P, {{-1, -1}, {-1, -.5}, {-1, 0}, {-1, .5}, {-1, 1}, { 1, -1}, { 1, -.5}, { 1, 0}, { 1, .5}, { 1, 1}}}, Locator}, {{opac, 0.75}, 0, 1} ]