Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-03-2006, 14:01   #1
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
[c++] come creare un grafico di una funzione

avete una funzione y=f(t) nota.

Ogni t=1s valutate la funzione e ogni coppia (t,y) volete graficarla su un grafico con ascissa=t, ordinata=y.

che istruzioni devo scrivere in c++ perchè a video appaia il grafico?

e una volta creato il grafico se volessi farne apparire anche un secondo distinto in cui graficare un altra funzione z=f(w)?
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2006, 11:46   #2
huNewbie
Member
 
Iscritto dal: Feb 2006
Messaggi: 30
Quote:
Originariamente inviato da vermaccio
avete una funzione y=f(t) nota.

Ogni t=1s valutate la funzione e ogni coppia (t,y) volete graficarla su un grafico con ascissa=t, ordinata=y.

che istruzioni devo scrivere in c++ perchè a video appaia il grafico?

e una volta creato il grafico se volessi farne apparire anche un secondo distinto in cui graficare un altra funzione z=f(w)?
La risposta dipende da un bel po' di questioni, del tipo:
  1. Quale ambiente di sviluppo usi? Dev-C++, Mingw, Visual Studio 6, Visual Studio .NET?
  2. Quale libreria grafica vuoi usare? MFC, Windows Forms, GTK, le API di Windows?
huNewbie è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2006, 14:47   #3
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
1)uso visual studio .net e lo uso solo per visual c++

2)non ho la più pallida idea di che cambia da una all'altra. sicuramente preferirei usare una libreria che sia dentro visual studio per non impazzire a compilare.

mi serve una cosa anche semplice, giusto per fare un grafico.
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2006, 18:46   #4
huNewbie
Member
 
Iscritto dal: Feb 2006
Messaggi: 30
Quote:
Originariamente inviato da vermaccio
1)uso visual studio .net e lo uso solo per visual c++

2)non ho la più pallida idea di che cambia da una all'altra. sicuramente preferirei usare una libreria che sia dentro visual studio per non impazzire a compilare.

mi serve una cosa anche semplice, giusto per fare un grafico.
Allora sei incredibilmente fortunato: se hai VC++ .NET 2003 puoi usare Windows Forms. Quello che devi fare è semplicemente creare un nuovo progetto Windows Forms .NET, e aggiungere al form che appare un tasto "Traccia" e una PictureBox. A quel punto, nella procedura del clic di "Traccia" (che ti appare facendoci doppio clic... meno male che il visual è visuale ) e iniziare a disegnare la funzione usando pictureBox1->CreateGraphics()->DrawLine, che ti permette di disegnare segmenti (meglio dei punti se vuoi un risultato buono). Basta ricordare che le PictureBox hanno un sistema di coordinate del tipo

(0, 0) in ALTO a sinistra
(larghezza, altezza) in BASSO a destra
In pratica l'asse y è ribaltato: ovviamente ti servirà fare una qualche traslazione degli assi...

Per cominciare ti consiglierei di sceglierti un sistema di riferimento tuo (che ne so, l'origine al centro, l'asse x che va da -5 a 5 e l'asse y che va da -3 a 3... o come preferisci) e di capire come trasformare le coordinate cartesiane del sistema scelto in quelle corrispondenti della PictureBox.
C'è solo da divertirsi un po'... IntelliSense è una vera goduria...
huNewbie è offline   Rispondi citando il messaggio o parte di esso
Old 17-03-2006, 19:23   #5
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
io ho visual studio .net 7.0.9254, credo del 2001.

considerando che sono iper-ignorante di visual mi serevirebe un listato "già fatto" o istruzioni precisissime su cosa fare e come compilare, dando per scontato di avere un file .cpp di c++ in cui istante per istante si calcola la funzione.
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2006, 12:03   #6
huNewbie
Member
 
Iscritto dal: Feb 2006
Messaggi: 30
Quote:
Originariamente inviato da vermaccio
io ho visual studio .net 7.0.9254, credo del 2001.

considerando che sono iper-ignorante di visual mi serevirebe un listato "già fatto" o istruzioni precisissime su cosa fare e come compilare, dando per scontato di avere un file .cpp di c++ in cui istante per istante si calcola la funzione.
Ops...
Quindi ti conviene andare su MFC, dato che se scegli di creare un progetto Win32 devi praticamente scrivere tutto il codice, compreso quello per creare finestra, riquadro...
Comunque penso che il principio sia lo stesso: devi creare (con il mitiko drag&drop dalla casella degli strumenti) un riquadro su cui disegnare, e poi capire come si fa a disegnarci sopra: dovrebbero esistere funzioni come MoveTo (che sposta il cursore su un pixel) e LineTo (che traccia una linea dal punto corrente a un altro. Tutte queste funzioni sono metodi di un oggetto, noto come CDC, che rappresenta l'oggetto su cui vuoi disegnare. Una volta ottenuto il CDC del riquadro (se il riquadro si chiama R, prova a scrivere R-> e a vedere se IntelliSense ti suggerisce un DC() o GetDC() o simile), insomma, puoi disegnarci sopra.

Magari in rete si trova qualche esempio o tutorial su MFC che potrebbe fare al caso tuo...
huNewbie è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2006, 12:52   #7
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
<<dato che se scegli di creare un progetto Win32 devi praticamente scrivere tutto il codice, compreso quello per creare finestra, riquadro... >>

è questo il metodo che vorrei usare. cioè restare dentro la programmazione c++ (file .cpp che poi compilo e trasformo in .exe. questo almeno so farlo:basta cliccare "build" hehehe) e scrivere codice da li dentro.

potete incollarmi qui il codice, gli include da inserire nel mio listato per graficare (ad esempio) y=sin(x) con x che va da 0 a 6.28?

purtroppo non so nulladi visual se non scribacchiare dentro un listato c++ per fare semplici programmi.

aiutatemi, per favore....
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2006, 13:04   #8
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
purtroppo non so aiutarti, ma prova a controllare sulle msdn o sul sito di ms, in genere ci sono degli esempi
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2006, 15:46   #9
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Scusa, ma hai mai scritto programmi con interfaccia grafica?
Dalle tue domande sembrerebbe di no.

Secondo me le soluzioni migliori sono librerie QT o wxWidgets, (la classe per il plotting delle QT è però decisamente migliore), le MFC per me sono sempre state arabo.
Ma devi imparare un bel pò di cose su come funzionano le interfacce grafiche e soprattutto fare una scelta.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2006, 16:06   #10
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
èquesto il problema:
non so nulla sulle interfacce grafiche e non mi serve saperne il funzionamento.
devo solo usarla per fare UNA cosa (più volte nel programma ma semprw quella, cioè graficare pl'andamento di più funzioni, una in una finestra diversa. Ad esempio spazio percorso, velocità, accelerazione: 3 grafici che vengono "creati" punto a punto a mano a mano che il programma cicla nel tempo (=ascissa).

quindi mi servono delle istruzioni da mettere nude e crdude da mettere nel listato c++, da usare così come sono, alla cieca, anche senza capire perchè sono scritte così.

immaginate di avere 2 funzioni.
a=funzione1(t)
b=funzione2(t)

t varia nel tempo con un ciclo for.

come faccio a diseganre:

finestra1--> ascissa t, ordinata a
finestra 2-->ascissa t, ordinata b

tutto li.

potreste incollare qui il codice c++ da inserire nel listato e l'elenco degli eventuali "include" o altro che devo infilare in testa al programma?

grazie
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2006, 16:07   #11
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
logico che finestra1 e finestra2 devono essere separate.

ah! io uso visual studio .net prima versione (credo 2001).
Sarebbe meglio usare, se possibile, libreire grafiche di "default".
Insomma senza installare altra roba.
devo solo inserire il codice, compilare cliccando su "build" e fine.
oppure divento scemo.
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2006, 22:40   #12
sandor78
Junior Member
 
Iscritto dal: Aug 2004
Messaggi: 23
prova ad uare la libreria CPlot, la puoi trovare su sf.net
sandor78 è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2006, 15:59   #13
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da vermaccio
èquesto il problema:
non so nulla sulle interfacce grafiche e non mi serve saperne il funzionamento.
Però vuoi creare un programma con interfaccia grafica
O meglio vuoi che qualcuno lo faccia al posto tuo senza che tu muova un dito.

Quote:
potreste incollare qui il codice c++ da inserire nel listato e l'elenco degli eventuali "include" o altro che devo infilare in testa al programma?

grazie
Anche se qualcuno facesse il lavoro al posto tuo, poi dovresti riadattare il codice scritto da te. Quindi dovresti comunque imparare qualcosa su come funzionano le interfacce grafiche.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 09:48   #14
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
Quote:
Originariamente inviato da tomminno
Però vuoi creare un programma con interfaccia grafica
O meglio vuoi che qualcuno lo faccia al posto tuo senza che tu muova un dito.
una cosa non la capisco: ma è così difficile creare in c++ una serie di istruzione del tipo "apri una finestra e schiaffaci una serie di puntini a queste coordinate"? questo solo mi serve. nulla di più.

Quote:
Originariamente inviato da tomminno
Anche se qualcuno facesse il lavoro al posto tuo, poi dovresti riadattare il codice scritto da te. Quindi dovresti comunque imparare qualcosa su come funzionano le interfacce grafiche.
un conto è "riadattare", vedendo però quali istruzioni sono state usate. un altro conto è partire da zero senza sapere nemmeno di che sto parlando o cosa mi serve.

non potete scrievre qualche riga di codice che stampi il grafico di una funzione a punti?
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 10:07   #15
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
una cosa non la capisco: ma è così difficile creare in c++ una serie di istruzione del tipo "apri una finestra e schiaffaci una serie di puntini a queste coordinate"? questo solo mi serve. nulla di più.
Intanto ti ci vuole qualcosa tipo WinMain al posto del normale main, a meno di non usare altre librerie grafiche, che rifiuti a priori.
Poi devi creare un panel, poi inserirci l'area per disegnare, poi devi impostare il brush per disegnare ed infine traslare le coordinate dei punti in modo conforme a quello della finestra di disegno, magari ricordandoti di impostare uno zoom adeguato...

Quote:
un conto è "riadattare", vedendo però quali istruzioni sono state usate. un altro conto è partire da zero senza sapere nemmeno di che sto parlando o cosa mi serve.

non potete scrievre qualche riga di codice che stampi il grafico di una funzione a punti?
Il metodo più veloce che conosco è utilizzando le FLTK, che funzionano anche con codice C, ma sono sempre librerie esterne al compilatore, che devi scaricare e compilare.
Altrimenti devi arrenderti e disegnare quello che ti serve con le MFC.
In ogni caso non sono proprio 2 righe di codice, ma molte di più.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 13:58   #16
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
<<In ogni caso non sono proprio 2 righe di codice, ma molte di più.>>

nessuna anima pia mi aiuta e me le scrive?
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 18:23   #17
huNewbie
Member
 
Iscritto dal: Feb 2006
Messaggi: 30
Quote:
Originariamente inviato da vermaccio
<<In ogni caso non sono proprio 2 righe di codice, ma molte di più.>>

nessuna anima pia mi aiuta e me le scrive?
Dammi mille euro e l'anima pia l'hai trovata

Ripeto: prova a usare MFC. Avventurarsi in Win32 non è per niente facile... e poi richiede moooooolto tempo. Per iniziare, intanto creati un nuovo progetto MFC dal Visual Studio e aggiungi alla finestra un riquadro per disegnare: richiede molto meno codice (e tempo) rispetto a Win32, perchè a quel punto l'unico codice che serve è quello per calcolare i punti e disegnarli.
Per darti un'idea, in un'applicazione Win32 nativa (che penso sia quel che vuoi usare tu... ma chi te lo fa fare ) devi scrivere TU il codice per creare la finestra di dialogo, mostrarla, disegnarci tastini vari... non ti conviene.
Se poi hai la possibilità di creare un progetto Windows Forms .NET è molto meglio... il "nuovo C++" usato è abbastanza simile al VB.

Ma poi... la caratteristica migliore del Visual Studio è proprio l'essere... visuale!
huNewbie è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2006, 20:09   #18
Perry_Rhodan
Member
 
L'Avatar di Perry_Rhodan
 
Iscritto dal: Jul 2005
Città: Canelli
Messaggi: 158
IMHO
una alternativa semplice e veloce potrebbe essere quella di usare un programma esterno tipo GNUPlot che è in grado di fare un grafico utilizzando dati salvati su di un file:

Calcoli la tua tabella dati
Salvi su file
usando la funzione system("Gnuplot param Filedati") richiami GNUPlot esattamente come se lo facessi da riga di comando (non so quali sono i param adatti, GNUPlot ne ha tantissimi)
eventualmente ripeti il tutto in un loop

oppure, alternativa ancora più semplice e veloce, fai tutto su excel o su calc di Openoffice senza impelagarti nel C++ .
Perry_Rhodan è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Il prossimo chip Exynos potrebbe essere ...
La crisi delle memorie non fa sconti a S...
Realme prepara il rilancio con la serie ...
IBM rafforza la sicurezza degli agenti I...
iPhone Duo, ancora problemi: Apple sta c...
PHP2Shell: Came sospende smart home e an...
LG Sound Suite: Dolby Atmos su misura pe...
Firefox, la nuova campagna è geniale: i ...
Black Flag Resynced, ora puoi morire anc...
Adesione di massa per l'IA nello studio:...
Tre problemi aperti da decenni risolti d...
Microsoft corregge una falla in Authenti...
Apple svela il piano linguistico di Siri...
Lara 3, l'IA romana che batte GPT, Claud...
Unreal Engine 5.8: integrazione di Advan...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:58.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v