Locator points not working in Manipulate calling RegionPlot, etc.
- To: mathgroup at smc.vnet.net
- Subject: [mg124283] Locator points not working in Manipulate calling RegionPlot, etc.
- From: Chris Young <cy56 at comcast.net>
- Date: Mon, 16 Jan 2012 17:03:47 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
No matter what I do, in terms of wrapping with DynamicModule, avoiding using variables from a module in an enclosed Dynamic or Manipulate, I can't get this very basic example to work. I just want to be able to drag around 4 points to set the quadrilateral, and then hatch all the subtriangles formed by drawin lines to the sides of the quadrilateral from the point T. House of trying everything I could think of have failed to get the Locator points to work. Any help hugely appreciated. http://home.comcast.net/~cy56/PolyHatchFromTestPt.nb http://home.comcast.net/~cy56/PolyHatchFromTestPt.png Chris Young cy56 at comcast.net _TriHatch[P1_, P2_, P3_, mesh_, light_, plotPts_, opts___] := Module[ { orient, (* orientation of the triangles *) interior, (* inequalities for interior of triangle *) Q (* projection of first vertex onto opposite side *) }, orient = Sign[Det[{P2 - P1, P3 - P1}]]; interior[P_] := And @@ (If[orient > 0, # > 0, # < 0] & /@ {Det[{P2 - P1, P - P1}], Det[{P3 - P2, P - P2}], Det[{P1 - P3, P - P3}] }); Q = Projection[P1 - P2, P3 - P2] + P2; RegionPlot[ interior[{x, y}], {x, -2, 2}, {y, -2, 2}, PlotStyle -> Opacity[0.1], ColorFunction -> (White &), Mesh -> Round[mesh Norm[P3 - P2], 1], MeshStyle -> If[orient > 0, Lighter[Green, light], Lighter[Red, light]], MeshFunctions -> {{x, y} â?? Det[{Q - P1, {x, y} - P1}]}, PlotPoints -> plotPts, BoundaryStyle -> None, Evaluate[opts] ] ] \[HorizontalLine]Ctr[P_] := Plus @@ P/Length[P] \[HorizontalLine]PolyHatch[P_, T_, mesh_, light_, plotPts_] := Module[ {C, n}, C = \[HorizontalLine]Ctr[P]; n = Length[P]; (*Print["n == ",n];*) Show[ Table[ \[HorizontalLine]TriHatch[T, P[[j]], P[[If[j < n, j + 1, 1]]], mesh, light, plotPts], {j, 1, n} ], Graphics[ { Table[ {Hue[0.85 (j - 1)/n], Thick, Line[{P[[j]], P[[If[j < n, j + 1, 1]]]}]}, {j, 1, n} ], Gray, PointSize[Large], Point[C] } ] ] ]
- Follow-Ups:
- Re: Locator points not working in Manipulate calling RegionPlot, etc.
- From: Heike Gramberg <heike.gramberg@gmail.com>
- Re: Locator points not working in Manipulate calling RegionPlot, etc.