Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-02-2011, 18:32   #1
miky7
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 6
[OpenGl] Problema a modificare colore linea

Salve a tutti, mi sono inoltrato da poco in questo mondo e son quindi alle prime armi..mi trovo un pò in difficoltà con un progettino che devo fare o meglio con una parte di questo.

Il progetto consiste nel disegnare tramite mouse una linea. Tenendo premuto il pulsante sinistro e spostando il mouse viene visualizzata la linea a seconda di dove spostiamo il cursore, poi quando rilasciamo il pulsante questa viene disegnata. Fin qui non ho avuto problemi..il problema è ora, ovvero devo creare un menù che mi permetta di cambiargli colore..ovviamente non ho problemi a creare il menu ma è dopo il problema, ovvero fargli cambiare colore........

#define MAX_LINE 50

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <STRING.h>
#include <math.h>
#include <GL/glut.h>

typedef struct linea{
int x1,x2,y1,y2;
int color;

} linea;

linea linee[MAX_LINE];
GLfloat colors[6][3]={{1.0, 0.0, 0.0}, {1.0, 1.0, 0.0},{0.0, 1.0, 0.0},
{0.0, 0.0, 1.0}, {1.0, 1.0, 1.0}, {1.0, 0.5, 0.0}};

int in_linee = -1;
GLsizei wh = 500, ww = 500; /* initial window size */

void mydisplay(){
glViewport(0, 0, wh, ww);
glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_LINES);
int i;
for(i=0; i<in_linee+1; i++){
glColor3fv(colors[linee[i].color]);
glVertex2i(linee[i].x1 , linee[i].y1);
glVertex2i(linee[i].x2 , linee[i].y2);
}
glEnd();
glFlush();
glutSwapBuffers();
}

void myMotion(int x, int y){
y = wh-y;
linee[in_linee].x2 = x;
linee[in_linee].y2 = y;
glutPostRedisplay();
}


void mymouse(int button, int state, int x, int y){
y = wh-y;

if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN){
in_linee +=1;
linee[in_linee].x1 = x;
linee[in_linee].y1 = y;
linee[in_linee].color = 0;
}
if(button == GLUT_LEFT_BUTTON && state == GLUT_UP){
linee[in_linee].x2 = x;
linee[in_linee].y2 = y;
if(linee[in_linee].x1 == linee[in_linee].x2 && linee[in_linee].y1 == linee[in_linee].y2){
in_linee -= 1;
}
glutPostRedisplay();
}

}

void mykey(unsigned char key, int x, int y){
switch(key){
case 26 :
in_linee = in_linee-1;
if(in_linee <0){
in_linee = -1;
}
break;
}
glutPostRedisplay();
}

void init(){
// colore nero come sfondo
glClearColor (0.0, 0.0, 0.0, 1.0);
// Disegna qualunque cosa di bianco
glColor3f(1.0, 1.0, 1.0);
// Imposta il volume della vista
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluOrtho2D(0, wh, 0, ww);
}

void demo_menu(int id)
{
switch (id) {
case 1:
exit(0);
break;
case 2:
linee[in_linee].color= glColor3fv(colors[linee[i].color]);
break;
case 3:
linee[in_linee].color= glColor3fv(colors[linee[i].color]);
break;
case 4:
linee[in_linee].color = glColor3fv(colors[linee[i].color]);
break;
case 5:
linee[in_linee].color = glColor3fv(colors[linee[i].color]);
break;
case 6:
linee[in_linee].color = glColor3fv(colors[linee[i].color]);
break;
default:
break;
}
glutPostRedisplay();
}

int main(int argc, char** argv){
glutInit(&argc,argv);

// Definiamo le proprietà della finestra
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(wh,ww);
glutInitWindowPosition(0,0);
glutCreateWindow("simple");
glutDisplayFunc(mydisplay);
//glutIdleFunc(myidle);
glutCreateMenu(demo_menu);
glutAddMenuEntry("quit",1);
glutAddMenuEntry("Colore Giallo",2);
glutAddMenuEntry("Colore Verde",3);
glutAddMenuEntry("Colore Blu",4);
glutAddMenuEntry("Colore Bianco",5);
glutAddMenuEntry("Colore Arancione",6);
glutAttachMenu(GLUT_RIGHT_BUTTON);

glutMouseFunc(mymouse);
glutMotionFunc(myMotion);
glutKeyboardFunc(mykey);



// Inizializziamo le variabili di stato di OpenGL
init();

// Entriamo nel ciclo di rendering
glutMainLoop();
}
miky7 è offline   Rispondi citando il messaggio o parte di esso
Old 23-02-2011, 21:47   #2
miky7
Junior Member
 
Iscritto dal: Feb 2011
Messaggi: 6
C'è nessuno che riesce a darmi qualche consiglio??
miky7 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
Avio si prepara ai test del Dimostratore...
Space Pioneer ha annunciato le cause del...
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: 11:02.


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