Colabora |
Degradado Triangular con GDI+[Utilizando el Control TrackBar y el GDI+]
|
Primeramente Saludos a todos los Visual-Maniaticos de la Red. =) si te has topado con este Web-Site
quiere decir no fue por casualidad si no que realmente deseas aprender...!!! Ahora Vienen los
saludos Personales!!! Y Empiezo con Uno Enorme a Dios!!!! Ups espero que guillermo no sea Ateo!! =S
jejeje como decia gracias Dios!!! por haberme dado la dicha de haber nacido en esta era en el que la
informatica esta tomando un rumbo totalmente distinto al que se tenia pensado, obviamente este rumbo
es para bien..... Sin Olvidar un agradecimiento a Guillerno "El Guille" por haber hecho que este
humilde Articulo llegase a ver la Luz, es la Primera Vez que Publico un Articulo!!! Gracias
Maestro!!! , tambien un Coordinal Saludo a Percy R. un ser muy transparente, sincero y sobre todo lo
que mas aprecio en un ser humano es la humildad, grande amigo...!!! de quien tambien estoy
aprendiendo bastante.. y Ala Comunidad Microsoft Sql Server Peru Community..... =)
Te contare rapidamente algo de mi persona y de mi mundo.Net para que no aburras.....ahi vamos =) Soy un Joven Estudiante de La Carrera Técnico Superior en Informatica..... Recientemente Cruzo el 5to Semestre de la Carrera de Tecnico Superior, pero mi vision esta mas aya de lo evidente como decia el Recordado Leono de los Thundercats, sinceramente me encataria mencionar algun certificado Microsoft que halla Obtenido pero aun no he tenido la Bendita oportunidad de dar un Examen de Certificacion pero estoy decidido a darlo, por el momento me estoy preparando con muchisimo esmero dia y noche minuto a minuto segundo a segundo, (24.7)///(24.7)???? las 24 horas del dia los 7 dias de la semana... para dar el Examen: 70-526 y 70-536 y ser un MCTS (Microsoft Certified Technology Specialist) en Aplicaciones Windows Forms..... de (Visual Basic) hasta el momento muchos de mis compañeros de estudios me apoyan con animos pero eso no cubre el cansancio y la paciencia que hay que tener........pero lo otro bueno de mi persona es que tengo muchisima paciencia...y se esperar el momento.. Objetivos Profesionales: Desenvolverme en una empresa compatible con mis objetivos y metas donde exista un ambiente de trabajo que me permita el crecimiento no solo a nivel profesional sino también a nivel personal. Enfrentar retos, hacer uso de la creatividad y libertad para prácticas de ideas y hechos que propicien el desarrollo de la sociedad. Objetivos Personales: Obtener todas las Certificaciones Microsoft.... Pero por el momento Obtener el tan añorado (MCTS): y Ser un Ing. de Software.. Bueno sin mas Preambulo Empezemos con el Articulo...!!!Para Empezar Algo de Teoria, "Pero Johnny!!! si se que la teoria es para muchos siempre muy aburrida pero si no tienes los fundamentos basicos del porque, el para que y cuando es el porque de las cosas, entonces no aprenderas nada, en fin se dice:Que "Cuando la teoria Tiene un porque, entonces resulta buena." .... uhhmmm meditalo GDI+El GDI+ no es nada mas y nada menos que la evolución de GDI, el API(Application Programming Interface), Traduccion (Interfaz de Programación de Aplicaciones), te soy sincero un profesor lo pregunto la otra vez en clase y que crees lo habia olvidado =S, sigamos para la manipulación de gráficos incluido en anteriores versiones de Windows. Al tratarse de un interfaz de programación independiente del dispositivo físico sobre el que se van a generar los gráficos, el programador gana en flexibilidad, ya que no debe preocuparse de si el gráfico generado se va a mostrar por el monitor, impresora, etc.; esta labor es resuelta por GDI+, que aísla el programa del hardware a manejar. GDI+ divide su campo de trabajo en tres áreas principales:• Generación de gráficos vectoriales 2D • Manipulación de imágenes en los formatos gráficos más habituales. • Visualización de texto en un amplio abanico de tipos de letra. En versiones anteriores del lenguaje, el objeto Form disponía de una serie de métodos y controles para el dibujo sobre la superficie del formulario. La mayor parte de esos elementos han desaparecido en la actual versión de VB, integrándose todas las operaciones de dibujo en las clases de .NET Framework; con ello, lo que aprendamos sobre trabajo con gráficos en VB.NET utilizando GDI+, nos servirá igualmente si en un futuro debemos abordar un proyecto en otro lenguaje de la plataforma, ya que las clases pertenecen a .NET Framework y no a un lenguaje en particular. Otro problema con el que nos enfrentábamos anteriormente era el hecho de que al necesitar alguna manipulación gráfica especial, teníamos que recurrir al API de Windows. A partir de ahora esto no será necesario, ya que como hemos comentado, es el propio entorno de ejecución de .NET el que nos proporciona dicho acceso, por lo que no será necesario acudir al API del sistema operativo. System.Drawing
Para utilizar las clases relacionadas con la manipulación de gráficos, es preciso importar este
espacio de nombres. System.Drawing contiene el conjunto de clases principales, aunque no es el único
namespace de GDI+; para tareas de mayor especialización con gráficos deberemos recurrir a alguno de
los siguientes espacios de nombre que están dentro de System.Drawing: Drawing2D, Imaging y Text.
Codigo Utilizado para este Demo: Para ello declararemos la variable "Puntos" la misma que sera asignada a la Estructura Point
Primero Importaremos el Namespace Imports System.Drawing.Drawing2D para indicarle al .Net que vamos a crear una interfaz en la cual trabajaremos con un manipulador de graficos y de paso obviar codigo. A continuacion crearemos un metodo o procedimiento el cual nos servira como codigo reutilizable ala hora de trabajar con los controles TrackBar, al cual llamaremos Dibujar() Sub Dibujar() 'Despues Crearemos las Vertices del triangulo Point: Representa un par ordenado de coordenadas X e Y de enteros que define un punto en un plano bidimensional. Dim Puntos As Point() = {New Point(picColores.Width / 2, 0), _ New Point(picColores.Width, picColores.Height), _ New Point(0, picColores.Height)} ' No hay objetos GraphicsPath creados. El objeto PathGradientBrush ' es construido directamente desde el arreglo de puntos. Luego Declararemos la variable pthGrBrush ala cual le asignaremos la estructura PathGradientBrush para encapsular el Objeto. PathGradientBrush: Encapsula el objeto de relleno. Dim pthGrBrush As New PathGradientBrush(Puntos) 'Luego llamamos ala variable (Puntos) 'seguidamente crearemos un arreglo de colores. Dim Colores As Color() = { _ Color.FromArgb(255, trbRojo1.Value, trbVerde1.Value, _ trbAzul1.Value), Color.FromArgb(255, trbRojo2.Value, _ trbVerde2.Value, trbAzul2.Value), Color.FromArgb(255, _ trbRojo3.Value, trbVerde3.Value, trbAzul3.Value)} 'Finalmente Llenamos el rectángulo que es mas largo que el triangulo 'Especificado en el arreglo de punto. La parte del rectángulo 'Fuera del triangulo no será pintado. picColores.CreateGraphics.FillRectangle(pthGrBrush, 0, 0, _ picColores.Width, picColores.Height) Para Terminar Invocaremos al Metodo o Procedimiento Dibujar() para que haga el trabajo Sucio.. jejeje me refiero aque el hara todo el trabajo nosotros solo le indicaremos en donde y cuando hacerlo =) jejeje Private Sub trbRojo1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbRojo1.Scroll Call Dibujar() End Sub Private Sub trbVerde1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbVerde1.Scroll Call Dibujar() End Sub Private Sub trbAzul1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbAzul1.Scroll Call Dibujar() End Sub Private Sub trbRojo2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbRojo2.Scroll Call Dibujar() End Sub Private Sub trbVerde2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbVerde2.Scroll Call Dibujar() End Sub Private Sub trbAzul2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbAzul2.Scroll Call Dibujar() End Sub Private Sub trbRojo3_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbRojo3Scroll Call Dibujar() End Sub Private Sub trbVerde3_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbVerde3.Scroll Call Dibujar() End Sub Private Sub trbAzul3_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbAzul3.Scroll Call Dibujar() End Sub Bueno como dice la cancion todo lo bueno tiene su final =) jejeje veamos, nuestra aplicacion se veria mas o menos asi en tiempo de ejecucion Espero te halla sido de utilidad este Articulo..... nos veremos en la Proxima Entrega Nota: Todo el Codigo visto en este Articulo es Valido para las Versiones 2003 y 2005. Saludos Quispe Flores Johnny B.
"No pienses en las Cosas que tienes, Piensa en las cosas que te hacen falta.."
|