Ayuda Con C#

19/05/2004 - 03:55 por Jose | Informe spam
Hola Amigos

Quiero simular el movimiento de un piston en c#. el
problemas que tengo es que apenas estoy aprendiendo C#
y necesito manejar hilos. El programa ya lo realice en
java manejando applets y creo que C# no maneja applets,
lo que pienso que se debe hacer es realizar una clase en
consola y llamarla a travez de un boton en winform no se
si se pueda realizar. si alguien me pudiera ayudar a
pasaslo a C# gracias ahi les escribo el codigo en java.

import java.awt.*;
import java.applet.*;

public class Mecanismo extends Applet implements Runnable
{
//Hilo que controla la animación:
Thread t;
float tiempo;

//Longitud de eslabones:
final int a = 50;
final int b = 180;
final int c = 80;
int d;

//Velocidad angular del eslabón de entrada:
final double omega2 = 1.5;

//Inicialización de las variables Thread y tiempo
public void init() {
t = new Thread(this);
t.start();
tiempo = 0;
}

/*
Función run que controla la animación
pasando el tiempo a una variable de control
Es de ley poner esta función como lo exige la interfaz
Runnable
*/
public void run() {
while(true) {
try {
Thread.sleep(20);
tiempo += 0.02;
repaint();
} catch (InterruptedException e) {
showStatus(String.valueOf(e));
}
}
}

/*
Función que calcula el ángulo de entrada (Eslabón A)
*/
double theta2() {
if(omega2*tiempo >= 2*Math.PI)
tiempo = 0;
return (omega2*tiempo);
}

/*
Función que calcula la posición en x del eslabón A
*/
int Ax() {
return (int)( Math.cos(theta2())*a );
}

/*
Función que calcula la posición en y del eslabón A
*/
int Ay() {
return (int)( Math.sin(theta2())*a );
}

/*
Función que dibuja el eslabón A
*/
public void dibujarA(Graphics g) {
g.drawLine( 120, 120, 120 + Ax(), 120 + Ay() );
}

/*
Función que calcula el ángulo del eslabón B
*/
double theta3() {
return ( Math.asin( (-a*Math.sin(theta2())-c)/b ) +
Math.PI );
}

/*
Función que calcula la posición en x del eslabón B
*/
int Bx() {
return (int) (a*Math.cos(theta2())-b*Math.cos(theta3
()));
}

/*
Función que dibuja el eslabón B
*/
public void dibujarB(Graphics g) {
g.drawLine( 120 + Ax(), 120 + Ay(), 120 + Bx(), 120 -
c );
}

/*
Función que dibuja los dos eslabones
*/
public void paint(Graphics g) {
setBackground(Color.white);
dibujarA(g);
dibujarB(g);
}
}
 

Leer las respuestas

#1 A.Poblacion
19/05/2004 - 07:49 | Informe spam
Jose" wrote in message
news:ef2301c43d44$525ddc90$
el problemas que tengo es que apenas estoy aprendiendo C#
y necesito manejar hilos



En C# los hilos se manejan de forma muy similar a la que tienes escrita
en tu programa en java.
Necesitarás hacer un "using System.Threading;"
Una vez hecho eso, el resto es muy similar a lo que ya tienes:

Para crear un hilo:
Thread t = new Thread(MiFuncion);
(observa un pequeño cambio: no es new Thread(this), sino new
Thread(funcion) ).

Para arrancarlo:
t.Start();

Para esperar a que acabe:
t.Join();

Para hacer una pausa:
Thread.Sleep(20);

Preguntas similares