|
[Date Index]
[Thread Index]
[Author Index]
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]
}
]
]
]
Prev by Date:
Re: How to check whether an infinite set is closed under addition?
Next by Date:
Re: how can one use mathematica get the approximate derivative of {x,y} data points?
Previous by thread:
Works in 7.0.1, not in 8.0.4 ??
Next by thread:
Re: Locator points not working in Manipulate calling RegionPlot, etc.
|