• Viernes 19 de Abril de 2024, 11:42

Autor Tema:  Ahora Si Mi Proyecto  (Leído 2414 veces)

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Ahora Si Mi Proyecto
« en: Martes 14 de Junio de 2005, 03:22 »
0
Este fue un trabajo que nos dejaron en la universidad, no es mucho pero cada figura que se pinta, esta hecha desde cero, es decir, sin usar las funciones de drawline, drawcircle, fillcircle, etc etc... usando los algoritmos de bressenham etc etc, en el rar viene el codigo fuente, y el ejecutable (en la carpeta debug).

A ver que les parece  :unsure:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ahora Si Mi Proyecto
« Respuesta #1 en: Martes 14 de Junio de 2005, 05:02 »
0
Hola esta muy bueno y me parece muy bien que te intereses por el C# y por el uso de GDI.

Lógicamente tiene muchas cosas por optimzar como control de excepciones (lo revente de tres maneras diferentes), rendimiento (es muy lento el pintado de las figuras), refresco de pantalla, estructua etc, etc..

pero eso no demerita tu trabajo, esta muy bien para comenzar.

muy bien ibito.

 :smartass:  ;)
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Ahora Si Mi Proyecto
« Respuesta #2 en: Martes 14 de Junio de 2005, 05:48 »
0
es lento porque como dije antes, hace las cosas punto por punto (no lo dije asi :P), o sea, cuando dibujas una linea, usa un fillrect de 1px de alto por 1px de ancho y asi dibuja TODA la linea, tambien el circulo, la elipse y el poligono, el circulo y elpise rellena pues imaginate, punto por punto (usando la linea que tambien es punto por punto :P), el relleno como en el paint truena, porque no pude hacer el stack como se debe, entonces, por eso esta lento.
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ahora Si Mi Proyecto
« Respuesta #3 en: Martes 14 de Junio de 2005, 14:19 »
0
para hacerlo más rapido usa la tecnica de doble buffer,
asi que en el buffer pintas la figura completa y una vez pintada copias el buffer completo a la pantalla, notaras asi un considerable aumento del rendimeinto, si adicionalmente controlas elk barrido de la pantalla obtendras una enorme calidad respecto a lo que tienes ahorita ;)
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Ahora Si Mi Proyecto
« Respuesta #4 en: Jueves 16 de Junio de 2005, 02:26 »
0
¿Que necesito para correrlo? :rolleyes:

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Ahora Si Mi Proyecto
« Respuesta #5 en: Jueves 16 de Junio de 2005, 04:31 »
0
el framework net
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

niofis

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Ahora Si Mi Proyecto
« Respuesta #6 en: Jueves 16 de Junio de 2005, 05:23 »
0
Hola, el programa no necesita utilizar doble buffer para correr mas rapido, de hecho eso lo haria mas lento y al ser un sistema para dibujo directamente lo haría un poco mas complicado de programar y por lo tanto aumentaría la cantidad de instrucciones para realizar el mismo trabajo. Si bien el doble buffer eliminaría el flickering, tambien se puede obtener ese efecto de otras maneras como utilizando máscaras XOR, pero como se ve en el código está utilizando las librerias GDI+ de .NET Framework por lo tanto no soporta esa función raster. Aunque bien podría utilizar SetPixel del GDI de windows, como está utilizando el GetPixel, y así aumentará el rendimiento. La mejor forma para aumentar el rendimiento del programa es utilizar la memoria directamente, pero eso es otro cuento...


niofis

Cronodragón

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
    • http://www.teleportmedia.com/
Re: Ahora Si Mi Proyecto
« Respuesta #7 en: Viernes 17 de Junio de 2005, 05:57 »
0
Hola gente!!

La manera de acelerar el algoritmo es dibujando líneas horizontales enteras en vez de un punto a la vez. A bajo nivel es más veloz, pero incluso en alto nivel es rápido pues este trabajo generalmente está optimizado en los motores gráficos (como la API de Windows).

Espero haber ayudado. Lamento no entrar en más detalle pero tuve un día muy pesado, me voy a dormir :hola: Saludos!!