Ejemplo #2 Creación de imágenes fijas a partir de formas simples
Mostrar 2 rectángulos en una cuadro de imagen cuando se hace clic en el boton de nombre "Dibujar"
el control PictureBox es una caja o área de gráficos vacía donde la esquina superior izquierda tiene como coordenada (x,y)=(0,0) e incrementa cada pixel 'x' de izquierda a derecha y 'y' de arriba hacia abajo
Agregamos un button y un PictureBox
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;
namespace Segundo_Programa_Graficacion1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Control usado: pictureBox1
private void pictureBox1_Click(object sender, EventArgs e)
{
}
// Control usado: button1_Click
private void button1_Click(object sender, EventArgs e) // METODO DEL BOTON#1
{
// Evento a generar cuando se hace clic
}
}
}
recordando la definición y declaración de una variable en C
int ENTERO1; // Declaración de una variable, el nombre del a variable es ENTERO1, el tipo de dato es INTEGER
ENTERO1 = 8; // Definición o asignación de la variable declarada anteriormente y su valor es 8
Análogamente se puede definir y declarar objetos gráficos
Graphics hojaN1; // Declaración de una variable u objeto denominada hoja numero1, el tipo de dato es GRAPHICS
hojaN1 = pictureBox1.CreateGraphics(); // asignamos una caja o área vacía para gráfico a la variable hojaN1
El evento a generar es que cuando se oprima el boton1 se muestre o dibuje objetos dentro del área de graficacion, por lo tanto escribimos el código dentro del método del boton1
// Control usado: button1_Click
private void button1_Click(object sender, EventArgs e) // METODO DEL BOTON#1
{
// Evento a generar cuando se hace clic
Graphics hojaN1; // Declaración de una variable u objeto denominada hoja numero1, el tipo de dato es GRAPHICS
hojaN1 = pictureBox1.CreateGraphics(); // asignamos una caja o área vacía para gráfico a la variable hojaN1
}
hay una función o método para dibujar rectángulos que requiere de los siguiente argumentos o parámetros
DrawRectangle( Objeto para dibujar, Xsuperior, Ysup, Width, High );
El primer argumento puede ser un PEN, SOLIDBRUSH entre otros
Como crear estos objetos
Pen lapizN1 = new Pen(Color.Black); // Se creo un nuevo objeto llamado lapizNumero1 que "escribe" en color negro
SolidBrush PincelRellenoN1 = new SolidBrush(Color.Gray); // Se creo un nuevo objeto llamado PincelRellenoNumero1 que "escribe" en color gris solid
entonces la funcion DrawRectangle podría contener los siguientes argumentos
DrawRectangle( lapizN1, 10, 10, 100, 50 );
pero se requiere dibujarlos sobre un objeto, el cual es para este ejemplo hojaN1
hojaN1.DrawRectangle(lapizN1, 10, 10, 100, 50);
ya tenemos nuestro primer dibujo realizado en C#
también se puede definir variables para los argumentos
int Pos_xSuperior = 10;
int Pos_ySuperior = 80;
int Rect_width = 100;
int Rect_high = 50;
hojaN1.DrawRectangle(lapizN1, Pos_xSuperior, Pos_ySuperior, Rect_width, Rect_high);
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;
namespace Segundo_Programa_Graficacion1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Control usado: pictureBox1
private void pictureBox1_Click(object sender, EventArgs e)
{
}
// Control usado: button1_Click
private void button1_Click(object sender, EventArgs e) // METODO DEL BOTON#1
{
// Evento a generar cuando se hace clic
Graphics hojaN1; // Declaración de una variable u objeto denominada hoja numero1, el tipo de dato es GRAPHICS
hojaN1 = pictureBox1.CreateGraphics(); // asignamos una caja o área vacía para gráfico a la variable hojaN1
Pen lapizN1
= new Pen
(Color
.Black); // Se creo un nuevo objeto llamado lapizNumero1 que "escribe" en color negro
SolidBrush PincelRellenoN1
= new SolidBrush
(Color
.Gray); // Se creo un nuevo objeto llamado PincelRellenoNumero1 que "escribe" en color gris solid
hojaN1.DrawRectangle(lapizN1, 10, 10, 100, 50); // Dibuja con lapizN1 un rectángulo en la coordenada (10, 10), de ancho 100 y alto 50
// Usando variables como parametros
int Pos_xSuperior = 10;
int Pos_ySuperior = 80;
int Rect_width = 100;
int Rect_high = 50;
hojaN1.DrawRectangle(lapizN1, Pos_xSuperior, Pos_ySuperior, Rect_width, Rect_high); // Dibuja con lapizN1 un 2do rectángulo en la coordenada (10, 80) de ancho 100 y alto 50
}
}
}
otros dibujos para el ejemplo anterior
hojaN1.DrawLine(lapizN1, 10, 10, 100, 60); // Dibuja con lapizN1 una linea en la coordenada inicial (10, 10) , final en (100, 60)
hojaN1.DrawEllipse(lapizN1, 10, 80, 100, 50); // Dibuja con lapizN1 una elipse en la coordenada inicial (10, 80) , de ancho 100 y alto 50
hojaN1.FillEllipse(PincelRellenoN1, 10, 150, 100, 50); // Dibuja con PincelRellenoN1 una elipse en la coordenada inicial (10, 150) , de ancho 100 y alto 50