Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Puedo usar visual c++ 2005 o debo usar otro lenguaje para crear graficos...

Estas en el tema de Puedo usar visual c++ 2005 o debo usar otro lenguaje para crear graficos... en el foro de C/C++ en Foros del Web. Saludos, para el programa que estoy creando voy a necesitar luego crear graficos que estaran compuesto por: Coordenadas (x,y) las cuales corresponden a cada nodo, ...
  #1 (permalink)  
Antiguo 26/07/2006, 11:28
 
Fecha de Ingreso: julio-2006
Mensajes: 47
Antigüedad: 17 años, 10 meses
Puntos: 0
Puedo usar visual c++ 2005 o debo usar otro lenguaje para crear graficos...

Saludos, para el programa que estoy creando voy a necesitar luego crear graficos que estaran compuesto por:

Coordenadas (x,y) las cuales corresponden a cada nodo, seria la malla que estoy creando con mi programa base, es una malla circular de circulos circunscritos. Desde el centro de ese circulo crearia rectas qe dividan los 360º en segmentos, asi entre cada 2 angulos y dos radios tendre 1 elemento.

Mi programa calcula una serie de propiedades en cada nodo, por otro lado yo tengo asignado que nodo pertenece a cada elemento.

dependendiendo de los valores para una propiedad en particular me interesa qe el elemento sea rellenado con un color especifico, la idea seria colocar una gamma de colores en funcion de los valores.

La idea es ver dibujada la malla con la distribución de colores.

En que lenguaje seria más facil programar esto?
  #2 (permalink)  
Antiguo 26/07/2006, 15:31
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 1 mes
Puntos: 2
pues si estas usando el Visual C++.NET pues usa gdi+. no hay de otra.
(suponiendo que usas codigo intermedio).
si usas C++ nativo, hay varias opciones.
OpenGL, DirectX, GDI, GDI+, SDL, etc.

el lenguaje no es importante en este caso sino la libreria grafica a usar.

Saludos.
  #3 (permalink)  
Antiguo 31/07/2006, 22:36
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 6 meses
Puntos: 7
con C++ y allegro lo puedes hacer facilmente (allegro.cc), otra opcion podria ser SDL (libsdl.com), o podrias usar la API de win32, que en lo personal no me gusta, pero si es lo mas completo que hay.

Si quieres usar el framework de .net 2.0 creo que seria mas facil hacerlo con C#....

saludos,
  #4 (permalink)  
Antiguo 31/07/2006, 22:46
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
La mayoria de los lenguajes conocidos soportan la programacion grafica.
Inclusive Visual basic 5, delphi, c/c++, java, etc, etc.

En respuesta a tu rpegunta:
Puedo usar visual c++ 2005 o debo usar otro lenguaje para crear graficos...
Si puedes usarlo, pero existen otras alternativas.

En que lenguaje seria más facil programar esto?
De los lenguaje sque he ocupado para hacer graficos, el que mas simple me resulto fue Visual Basic 5, pero como dije antes lo podes hacer en Visual Studio.net, en Java, en delphi, en C++, etc.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #5 (permalink)  
Antiguo 09/08/2006, 21:19
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años
Puntos: 28
Si ya lo tienes hecho en C++ o en C te recomiendo que lo sigas haciendo en ese lenguaje, las sugerencias de lo que podrias usar te las dio el amigo Nivel7, ahora bien si no has programado nada aun puedes usar otra alternativa como delphi, vb 5/6/.net, java, etc....
Mi recomendacion es que lo hagas en c++ usando opengl o directx, el rendimiento es insuperable, aunque con dlphui puedes conseguir resultados bastante buenos (mejores que en VB).

Saludos...
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #6 (permalink)  
Antiguo 10/08/2006, 15:04
 
Fecha de Ingreso: julio-2006
Mensajes: 47
Antigüedad: 17 años, 10 meses
Puntos: 0
Si, ando trabajando con visual c++ 2005, aunque aun ando generando el codigo que va a crear y manejar los archivos de texto que contendran los datos necesarios para poder ejecutar otro programa en segundo plano, el cual en su salida me dara ciertos datos en un archivo de texto que luego voy a usar para hacer otros calculos y a esos otros resultados son los qe me van a interesar graficar.

Aunqe dentro de poco me voy a poner a revisar la parte de graficación según lo que me han recomendado aca en el foro. Ya que no se aun que tan complicado pueda llegar a ser graficar coordenadas, formar elementos y luego rellenarlos con cierto color.

Gracias por sus sugerencias.
  #7 (permalink)  
Antiguo 15/08/2006, 21:26
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 6 meses
Puntos: 52
Haber, para empezar Visual C++ 2005 NO ES UN LENGUAJE, es simplemente el IDE+compilador de C++ que microsoft hizo y vende.
El lenaugaje es C++. Con C y con C++ puedes hacer practicamente cualqueir cosa, graficos, sonido, sistemas operaticos, calculadoras, juegos, etc.

Entonces, la mejor opcion es obviamente usar C o si ta sabes C++, pues que mejor. Para graficos, si usas la WINAPI pues siguete con esa y usa la GDI. Si no usa allegro, o SDL o si eres fan de microsoft(:-p ) usa la DirectX(la mejor opcion SOLO para windows).

Saludos
  #8 (permalink)  
Antiguo 27/08/2006, 13:54
 
Fecha de Ingreso: julio-2006
Mensajes: 47
Antigüedad: 17 años, 10 meses
Puntos: 0
He estado ojeando algunos tutoriales y las ayudas del visual c++ 2005 y simplemente lo qe puedo decir es qe no entiendo esa vaina... ya que en si no he conseguido ningún codigo completo para mostrar aunqe sea 1 punto en la pantalla usando el fulano gdi+.

Eso de dibujar en una ventana...pantalla... es algo que nunca he hecho asi que necesito saber si alguno conoce alguna pagina donde pueda ver un ejemplo completo para poder guiarme?.

uno de los ejemplos que consegui es este: ese codigo lo pegue tanto en el
public ref class Form1 : public System::Windows::Forms::Form
{
...

como en
#pragma region Windows Form Designer generated code
/// <summary>
....

public:
void DrawLineFloat( PaintEventArgs^ e )
{
// Create pen.
Pen^ blackPen = gcnew Pen( Color::Black,3.0f );

// Create coordinates of points that define line.
float x1 = 100.0F;
float y1 = 100.0F;
float x2 = 500.0F;
float y2 = 100.0F;

// Draw line to screen.
e->Graphics->DrawLine( blackPen, x1, y1, x2, y2 );
}

ahora por si solo no e muestra nada, asi que me puse a inventar tratando de llamarlo desde el evento load del formulario donde lo escribi, la unica forma que "funciono" es decir no me da error.... es colocando unicamente:

e;

claro no se muestra nada en pantalla. Lo que deseo graficar son varias cosas: por un lado la malla que crea el programa(las n celdas que se encuentran dentro de un cuadrado que tienen dif. formas segun su ubicación), por otro lado lo mismo anterior pero rellenando las celdas con un color que dependera de unos valores que tendran cada celda y por ultimo unas graficas de funciones practicamte lineales, según los ejemplos que estube viendo no se ve complicado que digamos pero necesito saber como implementar algo basico como mostrar un punto en pantalla al menos....

Gracias de antemano.
  #9 (permalink)  
Antiguo 27/08/2006, 18:25
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 1 mes
Puntos: 2
OK, tienes la idea solo te faltan algunos detalles.

En este momento estas trabajando con el .NET, por tanto tu programa se compilara en codigo manejado, esto implica que para que tu programa se ejecute en otra maquina esta tienen que contar con el Framework.NET. OK.

el GDI+, no solo lo puedes usar en .NET, tambien lo puedes usar desde programacion nativa, pero claro es un tanto mas complicado.

Te explico un poco para la graficacion en .NET:

cuando el IDE cre las clases generalmente el Form, este crea el constructor y una funcion llamada InitialiceComponents();

estas funciones son para crear los controles, no para dibujar.

para dibujar puedes hacerlo a partir de que tu Ventana se carga o muestra.

pero lo ideal es dibujar en el evento Paint.


para obtener el objeto Graphics de la ventana hay dos formas:

una que se usa en cualquier evento a esepciton de Paint.
es this->CreateGraphics(); donde ademas de this, puede ser otro objeto grafico, como un panel o un Boton.

para el evento Paint es la segunda forma que es
e.Graphics; donde e el el Argumento del evento Paint, donde ademas del objeto grafico esta el ClipRectangle, y otros datos mas.

entonces, ya que sabes esto, puedes hacer:


private: void Form_Paint(.....)//En el evento Paint
{
e->Graphics->DrawLine(gcnew Pen(Color::Black, 3.0f), x1,y1,x2,y2);
}


Para hacerlo en Load o en Show seria:

private: void Form_Load(....)
{
this->CreateGraphics()->DrawLine(gcnew Pen(Color::Black, 3.0f), x1,y1,x2,y2);
}

Hay otra forma de hacerlo, que es sobrecargando el Metodo Paint del Form.

protected: virtual void Paint(...) override ó new
{
}

//pero esta forma generalmente no se usa.

Es dificil encontrar Ejemplos de programacion.net con Visual C++.NET, la mayoria de las paginas usan VB.NET o C#.

sin embargo los mismo es aplicable a C++.NET.

Una de las mejores paginas de programacion.NET ademas de MSDN, es la de El guille.

Saludos.

Última edición por Nivel7; 28/08/2006 a las 14:35
  #10 (permalink)  
Antiguo 30/08/2006, 12:32
 
Fecha de Ingreso: julio-2006
Mensajes: 47
Antigüedad: 17 años, 10 meses
Puntos: 0
oye gracias, ya al menos pude graficar algunos poligonos en una ventana. Sin embargo todo fue trabajando con coordenadas que representan los pixeles.

Hay forma de cambiar los pixeles por coordenadas reales?, ya que necesito graficar poligonos de 4 lados que formaran la malla completa, y la malla la estoy generando con el centro en (0,0) por lo cual siempre tengo elementos tanto en X como en Y negativos.

Si se te ocurre como hacer eso creo qe de momento no tendria que molestarlos por un buen tiempo jajaja.

De verdad muchas gracias por el tiempo qe han invertido en ayudarme.

Lo que dices de instalar el .Net me di cuenta la primera vez qe fui a probar el programa en la empresa donde estoy haciendo la tesis. El programa primero daba error al intentar ejecutarlo... luego me di cuenta qe tenia qe crear un instalador, lo cual de verdad qe es muy util y claro cuando fui a instalarlo en las pc de la empresa jajaja me pidio el bendito .net y resulta qe ahi descubri qe casi todas las pc tenian copias del windows jajaja. Total que ahora siempre cargo en mi pendrive el .net 2.0 por si acaso.

Hasta luego.
  #11 (permalink)  
Antiguo 30/08/2006, 16:06
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 1 mes
Puntos: 2
probable mente el WindowForm tenga alguna solicion a esto, de lo contrario tendrias que disenar alguna funcion que haga la convercion.

Si te interesa en la pagina de www.conclase.net hay un manual(un tanto avanzado)para la programacion grafica.

http://graficos.conclase.net/curso/index.php?cap=002

revisalo, espero que te ayude.

creo que el .Net 2.0, solo se instala en maquinas con el SP2.
aunque en la actualidad la mayoria cuenta con el, aun hay unas con solo el XP.

Aumentar, que no es recomendable llamar las rutinas graficas del modo en que lo hemos hecho, esto es bueno solo cuando se llamara solo una rutina, lo ideal es hacer:

Graphics ^g = e->Graphics;
ó
Graphics ^g = this->CreateGraphics();

Pen ^bluePen = gcnew Pen(...);
g->DrawLine(bluePen, x1,y1,x2,y2);

esto es, para evitar laamar repetida mente la funcion CreateGraphics y a Graphics, que al final de cuentas es una funcion.

Saludos.

Última edición por Nivel7; 30/08/2006 a las 16:26
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 14:17.