Applicazioni grafiche



Похожие документы
Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1

DAL DIAGRAMMA AL CODICE

Per realizzare un programma in VB

Grafico della parabola

Preparati per il compito in classe Modulo 5

IL LINGUAGGIO Visual Basic

Realizzare semplici applicazioni windows

Algoritmo per l ordinamento di un array

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Struttura logica di un programma

GEOGEBRA I OGGETTI GEOMETRICI

Il Web-Service SDMX dell ISTAT

Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 13

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Il blog di Emanuele Mattei in ambito Database

A. Carullo Introduzione a Visual Basic. Introduzione a

Programmazione in Excel con il linguaggio Visual Basic

Algoritmo per l individuazione dei punti di svolta basato su previsioni effettuate con un modello di lisciamento esponenziale.

La ricerca dicotomica

LE FUNZIONI A DUE VARIABILI

Visual Basic FROM C TO DEDICATO AGLI UTENTI CON BASI DI C CHE SI AFFACCIANO AL MONDO DEL VISUAL BASIC. Contiene solo basi di linguaggio

Le variabili di Visual Basic consentono di memorizzare temporaneamente valori durante

LE TRASFORMAZIONI GEOMETRICHE NEL PIANO

Gestione degli archivi e stampe

Aggiornamento Titoli

Matematica in laboratorio

Data Mining Algoritmi e Programmazione

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Tutorial 17. Come creare un cancello personalizzato e inserirlo in libreria

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

IMPOSTARE LO SFONDO DEL DESKTOP

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

6. Applicazione: gestione del centro sportivo Olympic

Corso di Visual Basic (Parte 8)

Macro Key Manager Manuale per l utente

I file di dati. Unità didattica D1 1

Anno 4 Grafico di funzione

Compilatore risorse display grafico LCD serie IEC-line

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002

Obbiettivi: Fornire le conoscenze di base per creare un semplice gioco, tipo Pimball, in Visual Basic.

Trasformazioni Geometriche 1 Roberto Petroni, 2011

Prova di Laboratorio di Programmazione

Esportare dati da Excel

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Cos è Excel. Uno spreadsheet : un foglio elettronico. è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse

M.U.T. Modulo Unico Telematico. Specifiche tecniche interfaccia automatica per i Software Gestionali

Plus srl :: :: :: Via Morgagni, 4/A Verona :: Tel :: Fax

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

2.7 La cartella Preparazioni e CD Quiz Casa

Esempi di funzione. Scheda Tre

FUNZIONE. Si scrive: A B f: A B x y=f(x) (si legge: f funzione da A in B) x f y= f(x)

[Tutoriale] Realizzare un cruciverba con Excel

Arduino: Programmazione

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

Anno 5 Funzioni inverse e funzioni composte

ITIS E. BARSANTI POMIGLIANO D ARCO CORSO DI SISTEMI ELETTRONICI AUTOMATICI Prof. Paolo Bisconti

Appunti sull utilizzo del software gvsig, a cura dell ing. Ernesto Sferlazza

4 3 4 = 4 x x x 10 0 aaa

SCRUTINIO ON LINE 2 PERIODO

Capitolo 3. Figura 34. Successione 1,2,3...

DIAGRAMMA CARTESIANO


Relazioni tra tabelle

ITALIANO. Amministratore Tasto Macro Manuale d Uso

GRANDEZZE ALTERNATE SINUSOIDALI

DOMINIO E LIMITI. Esercizio 3 Studiare gli insiemi di livello della funzione f, nei seguenti casi: 1) f(x,y) = y2 x 2 + y 2.

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

TOP DOWN. Preparati per il compito in classe Modulo 5

CMS ERMES INFORMATICA

FastPRESS WEB. In questa schermata è possibile scegliere il tipo di consultazione che si desidera effettuare.

FUNZIONE REALE DI UNA VARIABILE

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

Rilevazione degli apprendimenti. Anno Scolastico PROVA DI MATEMATICA. Scuola Secondaria di II grado. Classe Terza Tipo A. Codici. Scuola:...

Introduzione al MATLAB c Parte 2

SISTEMI MULTIAGENTE. Esercizio

PROVA N Elencare gli elementi che conviene esaminare per tracciare il grafico di una funzione y=f(x) PROVA N 2. è monotona in R?

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Gestire immagini e grafica con Word 2010

ISTRUZIONI REGISTRO ELETTRONICO SCUOLANEXT

G6. Studio di funzione

DISPENSA DI GEOMETRIA

Trasformazioni geometriche nel piano cartesiano

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

Prof. Silvio Reato Valcavasia Ricerche. Il piano cartesiano

VERIFICA DI MATEMATICA. CLASSI TERZE (3AS, 3BS, 3CS, 3DS, 3ES) 2 settembre 2013 COGNOME E NOME.. CLASSE.

Altre funzioni utili SINTASSI ED ESEMPI

Introduzione alla Programmazione e Applicazioni per la Finanza M2 (Prodotti Derivati) Lezione 9

Intorni Fissato un punto sull' asse reale, si definisce intorno del punto, un intervallo aperto contenente e tutto contenuto in

Corso di Informatica

Definisci il Campo di Esistenza ( Dominio) di una funzione reale di variabile reale e, quindi, determinalo per la funzione:

Gestione Rapporti (Calcolo Aree)

Транскрипт:

Applicazioni grafiche I grafici all interno di un form sono realizzati attraverso gli oggetti del namespace System.Drawing. Graphics. Il namespace è incluso automaticamente nel progetto, quindi non è necessaria la dichiarazione di importazione: Imports System.Drawing.Graphics I due oggetti principali sono: Graphics, che rappresenta l area del grafico Pen, che contiene i parametri di disegno: colore e spessore del tratto. Dim Piano As Graphics Dim pen As New Pen(Color.Black, 1) La prima istruzione crea un oggetto grafico, la seconda imposta la penna con il colore nero e lo spessore 1. All inizio del programma, associata all evento Load del form, si può inizializzare l area del grafico con il metodo CreateGraphics che il form applica a se stesso (Me): Piano = Me.CreateGraphics() Il disegno di una retta è realizzato dal metodo DrawLine, che ha come parametri la penna e le coordinate dei punti estremi della retta. Piano.DrawLine(pen, X1, Y1, X2, Y2) Questo metodo non può essere utilizzato nella subroutine di gestione dell evento Load del form. Si osservi che si possono liberare le risorse grafiche utilizzate, quando non servono più, attraverso il metodo Dispose: dopo aver tracciato la retta Piano.Dispose() quando il programma termina. Progetto 1 Disegnare una retta nel piano cartesiano. Il progetto consiste nel tracciare gli assi cartesiani all interno di un form e successivamente dare la possibilità all utente di tracciare il grafico di una retta di cui fornisce le coordinate del primo punto A e del secondo punto B. Dati di input: Coordinate del punto A (XA, YA) Coordinate del punto B (XB, YB) Dati di output: retta che unisce i due punti. Istituto Italiano Edizioni Atlas 1

Nome del progetto Retta di tipo Applicazione Windows Form. Disegno dell interfaccia grafica Il programma utilizza tre pulsanti per le operazioni principali: tracciamento degli assi (Assi) tracciamento della retta (Traccia) oltre al pulsante per chiudere il programma (Fine). L utente inserisce poi le coordinate dei due punti nelle caselle di testo. Classe Proprietà dell oggetto Form Name frmretta Text Tracciamento di una retta Label Name lblpuntoa Text Punto A TextBox Name txtxa TextBox Name txtya Label Name lblpuntob Text Punto B TextBox Name txtxb TextBox Name txtyb Button Name btnassi Text Assi Button Name btntraccia Text Traccia Button Name btnfine Text Fine frmretta lblpuntoa txtxa txtya lblpuntob txtxb txtyb btnfine btntraccia btnassi Istituto Italiano Edizioni Atlas 2

Gestione degli eventi Occorre osservare che un form possiede un riferimento cartesiano intrinseco, avente l origine nell angolo in alto a sinistra, e che le sue dimensioni sono determinate dalle proprietà Size.Width e Size.Height. Quindi, se si vogliono tracciare gli assi di un sistema di riferimento cartesiano avente l origine al centro del form, occorre disegnare due linee: la prima per l asse x dal punto (0, Height \ 2) al punto (Width, Height \ 2) la seconda per l asse y dal punto (Width \ 2, Height) al punto (Width \ 2, 0). L origine si trova nel punto di coordinate X0 = Width \ 2, Y0 = Height \ 2. Per tracciare correttamente la retta passante per i punti dei quali l utente fornisce le coordinate, occorre poi operare una traslazione. Se le coordinate dei punti fornite dall utente sono A (XA, YA) e B(XB, YB), le coordinate trasformate diventano (X0 + XA, Y0 YA) e (X0 + XB, Y0 YB). Codice Visual Basic Imports System.Drawing.Graphics Public Class frmretta Dim X0, Y0 As Integer Dim X1, Y1, X2, Y2 As Integer Dim XA, YA, XB, YB As Integer Dim Piano As Graphics Private Sub frmretta_load(byval sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Piano = Me.CreateGraphics() Private Sub btnassi_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnassi.click ' penna nera Dim pen As New Pen(Color.Black, 1) 'asse x X1 = 0 Y1 = Me.Size.Height \ 2 X2 = Me.Size.Width Y2 = Me.Size.Height \ 2 Piano.DrawLine(pen, X1, Y1, X2, Y2) 'asse y X1 = Me.Size.Width \ 2 Y1 = Me.Size.Height X2 = Me.Size.Width \ 2 Y2 = 0 ' disegna la retta Piano.DrawLine(pen, X1, Y1, X2, Y2) ' origine X0 = Me.Size.Width \ 2 Y0 = Me.Size.Height \ 2 Istituto Italiano Edizioni Atlas 3

Private Sub btntraccia_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btntraccia.click ' penna rossa Dim pen As New Pen(Color.Red, 1) ' coordinate dei punti della retta XA = Val(txtXA.Text) YA = Val(txtYA.Text) XB = Val(txtXB.Text) YB = Val(txtYB.Text) ' traslazione dei punti X1 = X0 + XA Y1 = Y0 - YA X2 = X0 + XB Y2 = Y0 - YB ' disegna la retta Piano.DrawLine(pen, X1, Y1, X2, Y2) Private Sub btnfine_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnfine.click Piano.Dispose() End End Class Prova di esecuzione Istituto Italiano Edizioni Atlas 4

Progetto 2 Disegnare il grafico delle funzioni: y=x, y=x 2, y=x 4, y=e x Le funzioni sono rappresentate sull intervallo delle ascisse (-1,4) in modo da poter osservare l andamento delle funzioni nei loro aspetti grafici più significativi. L utente, attraverso quattro caselle di controllo, ha la possibilità di selezionare quali grafici rappresentare. Nome del progetto Grafici di tipo Applicazione Windows Form. Disegno dell interfaccia grafica Il controllo fondamentale di questa applicazione è un PictureBox che occupa la maggior parte del form e nel quale viene tracciato il grafico delle funzioni. Il grafico delle funzioni può essere disegnato o tralasciato a seconda delle impostazioni delle quattro CheckBox. Ogni voce del CheckBox corrisponde ad una funzione: in presenza del segno di spunta viene disegnata la funzione corrispondente. Sono, inoltre, definiti i tre bottoni di comando Disegna, Cancella e Fine: il primo serve per tracciare il grafico, il secondo per pulire il PictureBox e il terzo per chiudere l applicazione. Classe Proprietà dell oggetto Form Name frmgrafico Text Grafici PictureBox Name picpianocart CheckBox Name chkfunz0 Text y=x ForeColor Blue CheckBox Name chkfunz1 Text y=x^2 ForeColor Rosso CheckBox Name chkfunz2 Text y=x^4 ForeColor Verde CheckBox Name chkfunz3 Text y=e^x ForeColor Viola Button Name btndisegna Text Disegna Button Name btncancella Text Cancella Button Name btnfine Text Fine Istituto Italiano Edizioni Atlas 5

Se si sceglie di disegnare tutte le funzioni, l aspetto finale del PictureBox è come quello della figura. frmgrafico picpianocart chkfunz0 chkfunz1 chkfunz2 chkfunz3 btndisegna btncancella btnfine Gestione degli eventi All inizio del programma, nella subroutine frmgrafico_load, si calcola l unità di misura del sistema cartesiano sul video, dividendo la larghezza del controllo PictureBox (che è uguale all altezza) per il numero di ascisse fissato dai valori assegnati alle costanti minx, maxx. Gli assi e l origine del sistema cartesiano del grafico sono determinati come visto prima nel progetto del tracciamento della retta, ricordando che il sistema cartesiano associato al controllo PictureBox, attraverso l oggetto di tipo Graphics, ha l origine nell angolo in alto a sinistra. Per determinare quindi le coordinate nel piano reale del video, occorre operare le opportune trasformazioni per l ascissa e l ordinata dei punti. La funzione F calcola il valore dell ordinata e utilizza due parametri: l ascissa del punto e il numero della funzione. Per calcolare la funzione y = e^x si usa la funzione Exp della classe Math. La procedura Segmento disegna il tratto che unisce un punto al successivo secondo l incremento di 0.1 per l ascissa. Per rimuovere il grafico dal video si usa il metodo Clear applicato all oggetto di tipo Graphics: il metodo usa un parametro per il colore che viene impostato al colore di sfondo del controllo PictureBox. L array GrafSel di tipo booleano ricorda, per ciascuna funzione, se l utente ha fatto la selezione con il segno di spunta nella casella di controllo. Le istruzioni Piano.DrawLine contengono le funzioni CInt, per la conversione in numeri interi, perché le coordinate dei punti sono di tipo Double e i parametri del metodo DrawLine devono essere di tipo intero. Istituto Italiano Edizioni Atlas 6

Le seguenti costanti, utilizzate nel programma, definiscono la porzione di piano cartesiano su cui tracciare i grafici: minx = 1 maxx = 4 miny = 1 maxy = 4. Il programma utilizza gli oggetti grafici già visti nel progetto precedente per il tracciamento della retta. Per la rappresentazione di una funzione, la struttura più conveniente è il ciclo For con la variabile x che va dall estremo sinistro all estremo destro dell intervallo su cui si vuole rappresentare il grafico, con un incremento piccolo della x, per esempio 0.1. All interno del ciclo For in corrispondenza di ciascun valore della x si calcola y=f(x) e si disegna il segmento che unisce il punto al successivo, corrispondente all ascissa incrementata. Codice Visual Basic Public Class frmgrafico ' Estremi del piano cartesiano Const minx As Single = -1 Const maxx As Single = 4 Const miny As Single = -1 Const maxy As Single = 4 ' Larghezza (= altezza) dell'area del grafico Dim l As Short ' Unità di misura in pixel Dim u As Single ' Coordinate di un punto Dim X0, Y0 As Integer Dim X1, Y1, X2, Y2 As Double ' Oggetto grafico Dim Piano As Graphics ' Grafici selezionati Dim GrafSel(3) As Boolean Private Sub frmgrafico_load(byval sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Piano = picpianocart.creategraphics() ' Dimensioni del PictureBox l = picpianocart.size.width ' Unità di misura u = l / (maxx - minx) ' Origine X0 = u Y0 = maxy * u Public Sub DisegnaAssi() Dim pen As New Pen(Color.Black, 1) 'Asse x Istituto Italiano Edizioni Atlas 7

X1 = X0 + minx * u Y1 = Y0 X2 = X0 + maxx * u Y2 = Y0 Piano.DrawLine(pen, CInt(X1), CInt(Y1), CInt(X2), CInt(Y2)) 'Asse y X1 = X0 Y1 = Y0 - miny * u X2 = X0 Y2 = Y0 - maxy * u Piano.DrawLine(pen, CInt(X1), CInt(Y1), CInt(X2), CInt(Y2)) Public Sub ControllaSelezione() If chkfunz0.checked Then GrafSel(0) = True Else GrafSel(0) = False If chkfunz1.checked Then GrafSel(1) = True Else GrafSel(1) = False If chkfunz2.checked Then GrafSel(2) = True Else GrafSel(2) = False If chkfunz3.checked Then GrafSel(3) = True Else GrafSel(3) = False Public Sub Segmento(ByVal nf As Integer, ByVal a As Double, ByVal b As Double, ByVal c As Double, ByVal d As Double) Dim col As Color Select Case nf Case 0 col = Color.Blue Case 1 col = Color.Red Case 2 col = Color.Green Case 3 col = Color.Violet End Select Dim pen As New Pen(col, 1) Piano.DrawLine(pen, CInt(a), CInt(b), CInt(c), CInt(d)) Istituto Italiano Edizioni Atlas 8

Public Function F(ByVal i As Single, ByVal nf As Integer) As Double Select Case nf Case 0 F = i Case 1 F = i ^ 2 Case 2 F = i ^ 4 Case 3 F = Math.Exp(i) End Select End Function Private Sub btndisegna_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btndisegna.click Piano.Clear(picPianoCart.BackColor) ControllaSelezione() DisegnaAssi() Dim x As Single Dim j As Integer For x = minx To maxx Step 0.1 For j = 0 To 3 If GrafSel(j) Then X1 = X0 + x * u Y1 = Y0 - F(x, j) * u X2 = X0 + (x + 0.1) * u Y2 = Y0 - F(x + 0.1, j) * u Segmento(j, X1, Y1, X2, Y2) Next j Next x Private Sub btncancella_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btncancella.click Piano.Clear(picPianoCart.BackColor) Private Sub btnfine_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnfine.click Piano.Dispose() End End Class Istituto Italiano Edizioni Atlas 9