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
[youtube=425,350]http://www.youtube.com/watch?v=M_5GddFrzjI[/youtube]
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.
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)
Con un timer, un contador, y el evento Paint del contenedor :D
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/)
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace movimiento_armonico_simple
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics graphicsObj = e.Graphics;
// Círculo.
Pen myPen = new Pen(System.Drawing.Color.Gray, 1);
Rectangle myRectangle = new Rectangle(115, 50, 250, 250);
graphicsObj.DrawEllipse(myPen, myRectangle);
using (Pen p = new Pen(Color.Gray, 5))
{
//Horizontal
graphicsObj.DrawLine(p, myRectangle.X, myRectangle.Top + (myRectangle.Height / 2), myRectangle.Right, myRectangle.Top + (myRectangle.Height / 2));
//Vertical
graphicsObj.DrawLine(p, myRectangle.X + (myRectangle.Width / 2), myRectangle.Top, myRectangle.X + (myRectangle.Width / 2), myRectangle.Bottom);
}
}
}
}