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);
}
}

Preguntas similare

Leer las respuestas

#1 A.Poblacion
19/05/2004 - 07:49 | Informe spam
Jose" wrote in message
news:ef2301c43d44$525ddc90$
Mostrar la cita
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);
#2 Jose
19/05/2004 - 22:46 | Informe spam
Hola

Mira ya hice lo que me recomendaste ya pase el codigo
A c#,pero hay un problema que me salen las lineas
estaticas como hago para que me corran como en java
gracias.


Mostrar la cita
en
Mostrar la cita
Runnable
Mostrar la cita
interfaz
Mostrar la cita
Ads by Google
Search Busqueda sugerida