• Domingo 22 de Diciembre de 2024, 10:02

Autor Tema:  Pointf, Mschart  (Leído 1795 veces)

patpite

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Pointf, Mschart
« en: Martes 9 de Noviembre de 2004, 18:08 »
0
Hola a todos,

A ver si podéis echarme una manita con este problema, por favor.
Tengo una tabla de datos (los datos los presento en un datagrid). Son pares de puntos (X,Y). Quiero representarlos gráficamente. Tengo entendido que con PointF y otras herramientas de GDI podría hacerlo. Por el momento, tengo este código, pero no me funciona:

//Código para dibujar la curva de puntos         
         
// Creo el lápiz y el papel
System.Drawing.Pen lapiz = new System.Drawing.Pen(Color.MediumOrchid);
System.Drawing.Graphics papel = picGrafica.CreateGraphics();

//Array de puntos: inicializo el array metiendo un punto, pero no me gusta esto.
PointF inicial = new PointF(0,0);
PointF[] pts = {inicial};
           
foreach (DataRow dr in Andromeda.clases.comun.ds.Tables[Andromeda.clases.comun.TablaDatos].Rows)
         {
// Si fila activa, q pinte el par (X,Y)=(Tensión,Corriente)
   bool valor = (bool)dr["Par activo"];
   if(valor)
   {         
   //Guardo cada punto (X,Y)=(V,I) en el array PointF pts
      double V = (double)dr["Tensión (V)"];
      double I = (double)dr["Corriente (I)"];
   // Convierto el tipo de los datos para poder guardarlos en pts
      float X = (float)V;
      float Y = (float)I;
      PointF punto = new PointF(X,Y);

// AQUI SALTA EXCEPCION: Conversion no válida!! Quiero guardar el punto en la matriz pts               

pts[(int)dr["Identificador"]].Equals(punto);

   }

// Bucle de prueba: dibujar curva uniendo puntos
for(int i=1;i<pts.Length-1;i++)
   papel.DrawLine(lapiz,pts[(int)dr],pts[(int)dr[i+1]]);
}



¿Alguien me podría decir cómo almacenar los Point que voy creando en la matriz PointF[] pts?

Otra pregunta: ¿es posible utilizar el MSChart para C#? En ese caso, ¿cómo hacerlo?

Mil gracias!

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Pointf, Mschart
« Respuesta #1 en: Miércoles 10 de Noviembre de 2004, 11:30 »
0
asi seria en VB.Net:
Código: Text
  1.       Dim inicial = New PointF(0, 0)
  2.  
  3.       Dim pts() As PointF = {inicial}
  4.  
  5.       'numero de puntos
  6.       Dim nP As Integer
  7.  
  8.       nP = 5
  9.       ReDim pts(nP)
  10.  
  11.       For i As Integer = 0 To nP - 1
  12.          pts(i) = New PointF(x, y)
  13.       Next
  14.  
  15.  

y en C# seria asi:
Código: Text
  1.    PointF inicial = new PointF(0,0);
  2.    PointF[] pts = {inicial};
  3.    
  4.    int nP;
  5.    nP = 5;
  6.    pts = new PointF[nP];
  7.  
  8.    for ( int i=0&#59; i&#60;nP&#59; i++)
  9.        pts[i] = new PointF(x,y);
  10.  
  11.  

si te sirvio....?


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

patpite

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Pointf, Mschart
« Respuesta #2 en: Miércoles 10 de Noviembre de 2004, 12:26 »
0
Gracias por la ayuda Serghio!  :) Probaré a ver qué tal...