Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-06-2017, 08:46   #1
carlo.29
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 21
Programmino da creare con Processing!Bloccato

Ciao a tutti,
devo scrivere un programmino con processing ma mi sta facendo diventare matto.Mi blocco in un punto.

Il testo chiede di caricare un immagine da disco e creare un programma che abbia 2 modalità : mostra e modifica.In seguito alla pressione del tasto "m",il programma deve entrare in modalità "mostra" e visualizzare semplicemente l'immagine caricata (e sono riuscito a farlo).Premendo per la seconda volta il tasto "m",il programma entra in modalità "modifica".Deve suddividere l'immagine in 2 bande verticali.La divisione parte dal pixel mouseX-5,Y (Y,di logica, sarà uguale a quella del mouse,mouseY).
La funzione creaImmagine() avrà una variabile locale color c che leggerà il pixel in esame e lo trasferirà in due funzioni,bandadestra() e bandasinistra(),che riceveranno entrambe in input una variabile locale color,estrarranno le tonalità RGB del pixel in esame, e le altereranno in due modi diversi.Uno da applicare alla banda destra e l'altro alla banda sinistra.Quindi,restituiranno entrambe i colori modificati,che verranno richiamati in creaimmagine().Alla banda sinistra verrà applicato il colore modificato da bandasinistra(),alla banda destra il colore di bandadestra().
Successivamente,bisognerà richiamare creaImmagine() nella funzione predefinita draw(),che riceverà l'immagine,precedentemente caricata da disco, modificata da creaimmagine() e si comporterà nei modi elencati sopra alla pressione del tasto "m".
L'effetto da creare è ovviamente che, al movimento infinito del mouse,l'immagine sarà sempre divisa in 2 bande verticali colorate in base a qual'è il pixel mouseX-5,che cambia in continuazione, e le bande possono ovviamente restringersi e allargarsi.per esempio se sposto il mouse verso sinistra,sarà più grande quella di destra e viceversa.

Ho creato tutto il codice riguardante il caricamento dell'immagine da disco,setup,draw e le due funzioni bandasinistra() e bandadestra().
Mi blocco nella funzione creaimmagine().Non riesco a dividere l'immagine in due e colorare.Suppongo si possa fare con dei cicli FOR nidificati,che controllino le coordinate di x e di y di entrambe le bande.Però non ci capisco più nulla.Non capisco se tutto dipende da una sola x e y,del punto in esame,o le bande abbiano entrambe le loro coordinate.Non capisco nemmeno come richiamare le due funzioni e colorare due intere bande in base al movimento del mouse.
Per ora,dopo giorni di tentativi,visualizzo una sola banda,e non a colore fisso.Sposto il mouse e lampeggia di continuo.
Se inserisco le coordinate per la seconda banda,il programma non restituisce errore ma non visualizzo più nulla.

Potete darmi una mano con i cicli?

P.S. Il testo dell'esercizio dice che addirittura si potrebbero colorare le due bande attraverso una sola funzione,che applichi ad ogni banda la sua alterazione di colore ma non ho capito come si fa.Quindi ho creato due funzioni separate.
carlo.29 è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2017, 14:02   #2
carlo.29
Bannato
 
Iscritto dal: Jun 2017
Messaggi: 21
Non volevo allargare troppo il post precedente.
Escludendo la procedura per caricare l'immagine da disco,che mi funziona,inserisco le due funzioni e i cicli che sto provando a fare e non funzionano.Ci deve essere un casino enorme con le variabili e le coordinate.
Impostato così,mi colora solo la parte a sinistra del mouse ma il colore non è fisso.Lampeggia durante lo spostamento.A destra non colora nulla.
Come vedete,ho disattivato dei comandi.Se li attivo,non funziona nulla nemmeno a sinistra.

Codice :



PImage img,img1;


void setup()
{
surface.setResizable(true);
img= getImage();
surface.setSize(img.width, img.height);

image(img,0,0);

}


void draw()
{
if (key=='m')
{
noStroke();
image(img,0,0);
}
else if (key=='g')
{

img1=creaimmagine(img);
noStroke();
image(img1,0,0);

}

}


PImage creaimmagine(PImage img1)


{
int x0;int y0;int x1;int y1;int n_x=img.width;int n_y=img.height;
color c,csx,cdx;
c=img1.get(mouseX-5,mouseY);

for(x0=0;x0<=mouseX-5;x0=x0+1)
{
for(y0=0;y0<=mouseX-5+n_y-1;y0=y0+1)
{
//for(x1=mouseX-4;x1>n_x-mouseX-5;x1=x1+1)
//{
//for(y1=0;y1>=mouseX-4+n_y-1;y1=y1+1)
//{
c=img1.get(mouseX-5,mouseY);
csx=calcolapixelsx(c);
//cdx=calcolapixeldx(c);
img1.set(x0,y0,csx);
//img1.set(x1,y1,cdx);
//}
//}
}
}
return img1;
}

color calcolapixelsx(color csx)
{
float r,g,b;

r=red(csx);
g=green(csx);
b=blue(csx);


if(((r*1.5)+10.0)>255.0)
{
r=255.0;
}
else
{
r=(r*1.5)+10.0;
}

if(((g*1.3)+20.0)>255.0)
{
g=255.0;
}
else
{
g=(g*1.3)+20.0;
}

if((b+50.0)>255.0)
{
b=255.0;
}
else
{
b=b+50.0;
}


csx=color(r,g,b);

return csx;
}




color calcolapixeldx(color cdx)
{
float r,g,b;
float d;
d=sqrt(((mouseX-mouseX-5)*(mouseX-mouseX-5))+((mouseY-mouseY)*(mouseY-mouseY)));

r=red(cdx);
g=green(cdx);
b=blue(cdx);

if((r-d)>255.0)
{
r=255.0;
}
else
{
r=r-d;
}

if((g-d)>255.0)
{
g=255.0;
}
else
{
g=g-d;
}

if((b-d)>255.0)
{
b=255.0;
}
else
{
b=b-d;
}



cdx=color(r,g,b);

return cdx;
}
carlo.29 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
L'uso dell'IA nei giochi è cancer...
Meta punta sul nucleare USA per alimenta...
Le migliori offerte Amazon del weekend: ...
La crisi dell'hardware spinge i negozi g...
Apple Watch SE 3 scontato su Amazon: il ...
Robot aspirapolvere davvero scontati: si...
DDR5 troppo cara: il passato di AMD potr...
5 sconti TOP nuovi di zecca e altre offe...
Il più venduto e apprezzato: ECOV...
Era e resta un super top di gamma: il TV...
DOOGEE T10 Pro, il miglior tablet di tut...
Il miglior deumidificatore su Amazon sce...
Prosegue lo sviluppo del telescopio spaz...
28 astronauti cinesi hanno condotto un'e...
Dal Padiglione Italia al mercato globale...
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:55.


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