Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERÍA EN SISTEMAS
COMPUTACIONALES
Graficación.
ESTUDIANTE:
Esferas Botando.
YUCATÁN. 04/Diciembre/2023
COMENTARIOS:
Aunque me enfrenté a la dificultad de generar un solo método para manejar las dos esferas, pude
resolverlo creando métodos separados para cada una y llamándolos en el bucle principal del
programa. Esto me permitió actualizar el estado y dibujar las esferas de forma independiente.
El proceso de hacer que las esferas reboten fue emocionante y me permitió experimentar con el
movimiento y las colisiones. Ajustar los parámetros de velocidad, dirección y aceleración de las
esferas me ayudó a comprender mejor los conceptos físicos relacionados con el movimiento y el
rebote.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SharpGL;
namespace CLASE_20_Y_21
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
SharpGL.OpenGL gl = this.openGLCtrl1.OpenGL;
float[] light_ambient = { 0.2f, 0.2f, 0.2f, 1.0f };
float[] light_diffuse = { 1, 0, 1, 0, 1, 0, 1, 0 };
float[] light_specular = { 1, 0, 1, 0, 1, 0, 1, 0 };
float[] light_position = { 5.5f, 0.0f, 1.5f, 1.0f };
gl.ClearColor(0.0f, 0.0f, 0.0f, 0.0f);
float[] mat_specular = { 1.0f, 1.0f, 1.0f, 1.1f };
float[] mat_shininess = { 50 };
gl.Material(OpenGL.FRONT, OpenGL.SPECULAR, mat_specular);
}
//'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
public void actualizarEstado()
{
if (mFin == true)
{
mX = 10;
mY = 20;
mFin = false;
Micolor = NuevoColor();
return;
}
mX += (float)mVX;
if (mDireccion == 1)
{
mY -= (float)mVY;
mVY += mAY;
}
}
else
{
if (mDireccion == 2)
{
mY += (float)mVY;
mVY -= mAY;
if (mVY < 0)
{
mVY = 0;
mDireccion = 1;
}
}
}
}
//''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''
public void actualizarEstado2()
{
if (mFin2 == true)
{
mX2 = 45;
mY2 = 20;
mFin2 = false;
Micolor2 = NuevoColor();
return;
}
mX2 += (float)mVX2;
if (mDireccion2 == 1)
{
mY2 -= (float)mVY2;
mVY2 += mAY2;
}
}
else
{
if (mDireccion2 == 2)
{
mY2 += (float)mVY2;
mVY2 -= mAY2;
if (mVY2 < 0)
{
mVY2 = 0;
mDireccion2 = 1;
}
}
}
}
}
}