quiero llamar la siguiente polígono rojo: WPF: cómo dibujar este polígono?
El problema es si uso somethign así:
Polygon poly = new Polygon();
poly.StrokeThickness = 2;
poly.Stroke = Brushes.Black;
PointCollection points = new PointCollection();
for (int i = 0; i < this.NumberOfMetrics; i++)
{
points.Add(new Point(MAX_VALUE - this.Metrics[n, i] * Math.Cos(DegreeToRadian(i * (360/(this.NumberOfMetrics)))), MAX_Y_GUI - this.Metrics[n, i] * Math.Sin(DegreeToRadian(i * (360/(this.NumberOfMetrics))))));
}
poly.Points = points;
Entonces el polígono siempre está "llena" y en el ejemplo anterior, el rojo y el polígono verde está dibujado.
Ya he intentado agregar los 4 puntos "internos" a PointCollection, pero no se dibuja nada. Entonces, ¿cómo puedo lograr eso?
Probé la solución propuesta por David:
for (int n = 0; n < this.NumberOfRevisions; n++)
{
Path path = new Path();
CombinedGeometry geometry = new CombinedGeometry();
geometry.GeometryCombineMode = GeometryCombineMode.Union;
Polygon poly = new Polygon();
PointCollection points = new PointCollection();
for (int i = 0; i < this.NumberOfMetrics; i++)
{
points.Add(new Point(MAX_VALUE - this.Metrics[n, i] * Math.Cos(DegreeToRadian(i * (360/(this.NumberOfMetrics)))), MAX_Y_GUI - this.Metrics[n, i] * Math.Sin(DegreeToRadian(i * (360/(this.NumberOfMetrics))))));
}
poly.Points = points;
geometry.Geometry1 = poly.RenderedGeometry;
geometry.Geometry2 = poly.RenderedGeometry;
path.Data = geometry;
polygons.Add(poly);
paths.Add(path);
}
Esto es sólo una prueba pero thougth así que debería obtener el mismo resultado que antes, pero no se dibuja nada. ¿Hay algún problema con mi código?
¿Ha intentado dibujar primero el polígono rojo y luego dibujar el polígono verde? Además, ¿dónde cambias el color para que uno sea rojo y el otro verde? – dthorpe
Creo que un pequeño contexto en cuanto a lo que esta información puede ayudar. – vcsjones
@dthorpe sí Hice esto y luego funciona, ya que el segundo polígono está encima del primero. Pero uno de los colores es transparente, ya no funciona. –