Besoin d'aide pour un programme en java school
Roxanesei
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
arth Messages postés 9374 Date d'inscription Statut Contributeur Dernière intervention -
arth Messages postés 9374 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en Terminale S ayant pour spécialité ISN.
Avec ma coéquipière, on a besoin d'aide pour créer un programme :
"Inversion mouvante : une barre de 30 pixels de large se déplace sur l'image de gauche à droite provoquant son inversion localement."
L'image est de 500x500 pixels.
Notre programme :
void main() {
//Afficher l'image
String image = "CUsers/Melly/Pictures/Artwork_Les_Sims_3_A&C_13.jpg";
load(image);
//Effet barre de 30 pixels qui se déplace de gauche à droite donnant
//un effet négatif sur l'image :
for (int i = -250; i <=-220; i = i +1)
for (int j =-250; j <= 250; j = j +1) {
int pix = getPixel(i, j);
setPixel(i, j, 255 - pix);
}
}
Est-ce que vous pouvez nous aider svp ? :)
Je suis en Terminale S ayant pour spécialité ISN.
Avec ma coéquipière, on a besoin d'aide pour créer un programme :
"Inversion mouvante : une barre de 30 pixels de large se déplace sur l'image de gauche à droite provoquant son inversion localement."
L'image est de 500x500 pixels.
Notre programme :
void main() {
//Afficher l'image
String image = "CUsers/Melly/Pictures/Artwork_Les_Sims_3_A&C_13.jpg";
load(image);
//Effet barre de 30 pixels qui se déplace de gauche à droite donnant
//un effet négatif sur l'image :
for (int i = -250; i <=-220; i = i +1)
for (int j =-250; j <= 250; j = j +1) {
int pix = getPixel(i, j);
setPixel(i, j, 255 - pix);
}
}
Est-ce que vous pouvez nous aider svp ? :)
A voir également:
- Besoin d'aide pour un programme en java school
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Bonjour,
En se référant à la charte, nous ne faisons pas les devoirs à la place des étudiants.
Néanmoins, en nous disant précisément où ça ne va pas, et ce que vous avez déjà fait, dans ce cas ce sera possible.
En se référant à la charte, nous ne faisons pas les devoirs à la place des étudiants.
Néanmoins, en nous disant précisément où ça ne va pas, et ce que vous avez déjà fait, dans ce cas ce sera possible.
Quand je vois ça :
//Effet barre de 30 pixels qui se déplace de gauche à droite donnant
//un effet négatif sur l'image :
for (int i = -250; i <=-220; i = i +1)
for (int j =-250; j <= 250; j = j +1) {
int pix = getPixel(i, j);
setPixel(i, j, 255 - pix);
Je ne vois que la création d'une barre de 30*500 dont on inverse à priori les pixels. Mais effectivement aucun mouvement.
Du fait du premier for qui ne fait que créer petit à petit une barre de 30 pixels de large horizontal.
C'est déjà un bon début pour poursuivre. Si c'était moi je pense que je créerais la barre tant que celle-ci n'a pas une taille de 30. Ensuite lorsque la taille 30 est acquise, je ne refais pas tout le calcul des pixels, uniquement la mise à jour de la prochaine ligne de pixel X+1, et la mise à jour inverse de X-30 ou 31.
Par contre dans le setPixel,la formule d'inversion me paraît un peu douteuse, à moins que ce soit géré à postériori. Parce qu'en général le pixel possède un format RVB, à moins que cela soit simplifié pour cet exercice.
Mettons que ce soit le cas, 255 - 30, = 225, mais 225 -255 ne donnera pas 30.
Mais bon on a pas toutes les données non plus :-)
//Effet barre de 30 pixels qui se déplace de gauche à droite donnant
//un effet négatif sur l'image :
for (int i = -250; i <=-220; i = i +1)
for (int j =-250; j <= 250; j = j +1) {
int pix = getPixel(i, j);
setPixel(i, j, 255 - pix);
Je ne vois que la création d'une barre de 30*500 dont on inverse à priori les pixels. Mais effectivement aucun mouvement.
Du fait du premier for qui ne fait que créer petit à petit une barre de 30 pixels de large horizontal.
C'est déjà un bon début pour poursuivre. Si c'était moi je pense que je créerais la barre tant que celle-ci n'a pas une taille de 30. Ensuite lorsque la taille 30 est acquise, je ne refais pas tout le calcul des pixels, uniquement la mise à jour de la prochaine ligne de pixel X+1, et la mise à jour inverse de X-30 ou 31.
Par contre dans le setPixel,la formule d'inversion me paraît un peu douteuse, à moins que ce soit géré à postériori. Parce qu'en général le pixel possède un format RVB, à moins que cela soit simplifié pour cet exercice.
Mettons que ce soit le cas, 255 - 30, = 225, mais 225 -255 ne donnera pas 30.
Mais bon on a pas toutes les données non plus :-)
Nous bloquons dans notre programme parce que nous arrivons pas à faire bouger la barre de 30 pixels.
Nous savons que nous devons utiliser une boucle "for" pour que la largeur bouge et que la hauteur ne bouge pas.
Ensuite, nous avons essayé plusieurs fois mais la barre ne bouge pas ou elle bouge jusqu'au bout mais à la fin l'image est totalement en inversion.
Du coup on sait que lorsque la barre se déplace d'un pixel, il faut que l'ancien pixel "inversé" soit "re-inversé" pour qu'il redevienne normal.