Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Meta en 21 Agosto 2011, 12:19 pm



Título: Hacer graficos en movimientos
Publicado por: Meta en 21 Agosto 2011, 12:19 pm
Hola:

Quiero hacer una cosa en programación como curiosidad. Puede que se maneje menor con GDI+. Se trata de hacer la misma acción con dibujos vectoriales a GDI+ o otra tecnología como muestra el vídeo a parit del 5 segundos.

Ver vídeo
M_5GddFrzjI

Por lo que veo, hay que seguir una velocidad constante en el círculo con el punto que da vueltas. Las otras bolas o puntos, simplemente siguen con su variable X e Y las coordenadas del punto circulante.

¿Complicado?

Para mi lo es. Ni se como empezar.

Usando un Form1, luego a diburjar un círculo que luego pongo aquí, lo que no se es como hacer girar el punto del círculo, me imagino con un timer por medio.

Un saludo.


Título: Re: Hacer graficos en movimientos
Publicado por: Keyen Night en 22 Agosto 2011, 03:22 am
Complicado no, sino que vas a necesitar de mucha matemática, sobre todo con el movimiento circular, esto lo vistes en física cuando estabas en bachillerato al menos te debes acordar de los nombres XD "Movimiento Circular Uniforme" y "Aceleración y Fuerza Centrípeta", busca información al respecto y la velocidad parece ser 0-1-0 osea que comienza en 0 acelera a 1 y vuelve a caer a 0, claro los números son ejemplos de valores. Esto quiere decir que no es uniforme sino más bien Variado el movimiento.

Aquí está muy bien explicado:
http://www.rena.edu.ve/cuartaEtapa/fisica/Tema4b.html (http://www.rena.edu.ve/cuartaEtapa/fisica/Tema4b.html)


Título: Re: Hacer graficos en movimientos
Publicado por: raul338 en 22 Agosto 2011, 04:43 am
Con un timer, un contador, y el evento Paint del contenedor :D


Título: Re: Hacer graficos en movimientos
Publicado por: Meta en 22 Agosto 2011, 08:07 am
Estoy en ello.

Quiero hacer sea como sea esto.

(http://social.microsoft.com/Forums/getfile/4499/)

Por ahora me sale esto. ;)

(http://social.microsoft.com/Forums/getfile/4497/)

Código
  1. using System.Collections.Generic;
  2. using System.ComponentModel;
  3. using System.Data;
  4. using System.Drawing;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Windows.Forms;
  8.  
  9. namespace movimiento_armonico_simple
  10. {
  11.    public partial class Form1 : Form
  12.    {
  13.        public Form1()
  14.        {
  15.            InitializeComponent();
  16.        }
  17.  
  18.        private void pictureBox1_Paint(object sender, PaintEventArgs e)
  19.        {
  20.            Graphics graphicsObj = e.Graphics;
  21.  
  22.            // Círculo.
  23.            Pen myPen = new Pen(System.Drawing.Color.Gray, 1);
  24.            Rectangle myRectangle = new Rectangle(115, 50, 250, 250);
  25.            graphicsObj.DrawEllipse(myPen, myRectangle);
  26.  
  27.            using (Pen p = new Pen(Color.Gray, 5))
  28.            {
  29.                //Horizontal
  30.                graphicsObj.DrawLine(p, myRectangle.X, myRectangle.Top + (myRectangle.Height / 2), myRectangle.Right, myRectangle.Top + (myRectangle.Height / 2));
  31.                //Vertical
  32.                graphicsObj.DrawLine(p, myRectangle.X + (myRectangle.Width / 2), myRectangle.Top, myRectangle.X + (myRectangle.Width / 2), myRectangle.Bottom);
  33.            }
  34.        }
  35.    }
  36. }
  37.