Cini.h
Fermé
ArtyBours
Messages postés
5
Date d'inscription
jeudi 29 janvier 2015
Statut
Membre
Dernière intervention
31 janvier 2015
-
29 janv. 2015 à 23:23
ArtyBours Messages postés 5 Date d'inscription jeudi 29 janvier 2015 Statut Membre Dernière intervention 31 janvier 2015 - 31 janv. 2015 à 17:10
ArtyBours Messages postés 5 Date d'inscription jeudi 29 janvier 2015 Statut Membre Dernière intervention 31 janvier 2015 - 31 janv. 2015 à 17:10
4 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
29 janv. 2015 à 23:31
29 janv. 2015 à 23:31
Ben voyons...
Ce ne sont pas des questions, mais l'énoncé tel quel...
Si tu as des questions précises, pose-les.
Ce ne sont pas des questions, mais l'énoncé tel quel...
Si tu as des questions précises, pose-les.
ArtyBours
Messages postés
5
Date d'inscription
jeudi 29 janvier 2015
Statut
Membre
Dernière intervention
31 janvier 2015
29 janv. 2015 à 23:37
29 janv. 2015 à 23:37
Oui en effet et j'aimerais savoir comment répondre à cet énoncé, je ne veux pas la réponse hein mais juste la méthode, je souhaite comprendre.
Je n'ai pas le temps en une nuit de me faire tous les tutos d'un site ou d'un autre mais je m'y mettrai dés la semaine prochaine maintenant que j'ai un ordi.
Les livres que j'ai pu avoir sous la main sont très lourds et peu pédagogiques d'où ma question. Surtout que à ce que j'ai pu comprendre cini.h est une blibliotheque assez spéciale.
Je n'ai pas le temps en une nuit de me faire tous les tutos d'un site ou d'un autre mais je m'y mettrai dés la semaine prochaine maintenant que j'ai un ordi.
Les livres que j'ai pu avoir sous la main sont très lourds et peu pédagogiques d'où ma question. Surtout que à ce que j'ai pu comprendre cini.h est une blibliotheque assez spéciale.
ArtyBours
Messages postés
5
Date d'inscription
jeudi 29 janvier 2015
Statut
Membre
Dernière intervention
31 janvier 2015
Modifié par ArtyBours le 30/01/2015 à 00:37
Modifié par ArtyBours le 30/01/2015 à 00:37
J'avais tenté de le traduire sur papier mais je bloque à l'intersection des deux rectangles je ne sais pas trop comment faire ça.
Pour R1 je suppose que ça doit être quelque chose du style:
A (0;0)
B (200;0)
C (200;-50)
D (0;-50)
draw_rectangle_remplis_en_bleu A B C D
Après R2:
de longueur L
et de hauteur H
A'(x;y) coin supérieur gauche
B'(x+L;y)
C'(x+L;y-H)
D'(x;-H)
draw_rectangle_remplis_en_rouge A' B' C' D'
Ca se complique pour la suite, comment voir s'il y a une intersection:
-Vérifier qu'un des coins de R2 a des coordonnées comprises dans R1 (le faire pour chaque coin donc) et si c'est le cas comment définir quelle partie de R2 est dans R1 ?
Pour R1 je suppose que ça doit être quelque chose du style:
A (0;0)
B (200;0)
C (200;-50)
D (0;-50)
draw_rectangle_remplis_en_bleu A B C D
Après R2:
de longueur L
et de hauteur H
A'(x;y) coin supérieur gauche
B'(x+L;y)
C'(x+L;y-H)
D'(x;-H)
draw_rectangle_remplis_en_rouge A' B' C' D'
Ca se complique pour la suite, comment voir s'il y a une intersection:
-Vérifier qu'un des coins de R2 a des coordonnées comprises dans R1 (le faire pour chaque coin donc) et si c'est le cas comment définir quelle partie de R2 est dans R1 ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
Modifié par fiddy le 30/01/2015 à 00:34
Modifié par fiddy le 30/01/2015 à 00:34
Tu as juste posé les sommets du rectangle.
Ce n'est pas ce que j'ai dit... Il faut passer par des boucles pour remplir le rectangle. Relis mon post pour t'en inspirer.
Pour l'intersection, ce sont des maths. Comment traduis-tu les coordonnées des sommets du rectangle (en supposant qu'il existe et comment traduis-tu son existence (cela faut 2 inéquations, genre : si x<...). Pose le dessin sur un papier, c'est simple. Puis, il ne restera plus qu'à colorier ce rectangle.
Note : tu as une erreur dans les sommets de R2
Ce n'est pas ce que j'ai dit... Il faut passer par des boucles pour remplir le rectangle. Relis mon post pour t'en inspirer.
Pour l'intersection, ce sont des maths. Comment traduis-tu les coordonnées des sommets du rectangle (en supposant qu'il existe et comment traduis-tu son existence (cela faut 2 inéquations, genre : si x<...). Pose le dessin sur un papier, c'est simple. Puis, il ne restera plus qu'à colorier ce rectangle.
Note : tu as une erreur dans les sommets de R2
ArtyBours
Messages postés
5
Date d'inscription
jeudi 29 janvier 2015
Statut
Membre
Dernière intervention
31 janvier 2015
Modifié par ArtyBours le 30/01/2015 à 01:18
Modifié par ArtyBours le 30/01/2015 à 01:18
"Il faut passer par des boucles pour remplir le rectangle."
"Dessiner(couleur, i, j) par : CINI_draw_pixel(i , j, "couleur"); "
Il n'y a pas de boucle là dedans. Donc pourquoi remplir le rectangle avec une boucle ? Je ne comprends pas.
EDIT je crois avoir compris pour les rectangles en fait ils se tracent à l'aide boucles !
For i=0 i<200 i++
For j+0 J<-50 j++
CINI draw pixel i, j bleu ?
J'ai bien fait les rectangles sur papier mais l'intersection peut être de plein de formes selon que R2 est entièrement dans R1 ou l'inverse ou juste une partie seulement...
Concernant R2 où est mon erreur ? J'en avais une dans R1 mais dans R2 je ne vois pas
"Dessiner(couleur, i, j) par : CINI_draw_pixel(i , j, "couleur"); "
Il n'y a pas de boucle là dedans. Donc pourquoi remplir le rectangle avec une boucle ? Je ne comprends pas.
EDIT je crois avoir compris pour les rectangles en fait ils se tracent à l'aide boucles !
For i=0 i<200 i++
For j+0 J<-50 j++
CINI draw pixel i, j bleu ?
J'ai bien fait les rectangles sur papier mais l'intersection peut être de plein de formes selon que R2 est entièrement dans R1 ou l'inverse ou juste une partie seulement...
Concernant R2 où est mon erreur ? J'en avais une dans R1 mais dans R2 je ne vois pas
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
30 janv. 2015 à 21:21
30 janv. 2015 à 21:21
For i=0 i<200 i++
La syntaxe est à revoir.
CINI draw pixel i, j bleu ?
Pareil, à revoir.
J'ai bien fait les rectangles sur papier mais l'intersection peut être de plein de formes
Euh non... A moins d'être un magicien, on a dans tous les cas un rectangle (lorsqu'il existe). Il suffit donc de calculer les sommets (c'est une bête soustraction...).
La syntaxe est à revoir.
CINI draw pixel i, j bleu ?
Pareil, à revoir.
J'ai bien fait les rectangles sur papier mais l'intersection peut être de plein de formes
Euh non... A moins d'être un magicien, on a dans tous les cas un rectangle (lorsqu'il existe). Il suffit donc de calculer les sommets (c'est une bête soustraction...).
ArtyBours
Messages postés
5
Date d'inscription
jeudi 29 janvier 2015
Statut
Membre
Dernière intervention
31 janvier 2015
31 janv. 2015 à 17:10
31 janv. 2015 à 17:10
C'est bon j'ai réussis je crois !
Quand je disais de plein de formes je voulais dire que ce pouvait être le coin gauche de R2 juste dans R1 ou bien le rectangle entier etc
J'ai passé pas mal de temps à bosser et voilà ce que j'ai au final, qu'en pensez-vous ?
#include <stdio.h>
#include <cini.h>
#define CGX 0
#define CGY 0
#define LARG 200
#define HAUT 50
int main() {
int i,j;
CINI_open_window(300,300,"Question9");
for(i=0; i<200; i++) {
for(j=0; j<50; j++) {
CINI_draw_pixel(i,j,"blue");
}
}
for(i=CGX; i<LARG; i++) {
for(j=CGY; j<HAUT; j++) {
if(i<200 && j<50) {
CINI_draw_pixel(i,j,"yellow");
}
else {
CINI_draw_pixel(i,j,"red");
}
}
}
CINI_loop();
return 0;
}
Quand je disais de plein de formes je voulais dire que ce pouvait être le coin gauche de R2 juste dans R1 ou bien le rectangle entier etc
J'ai passé pas mal de temps à bosser et voilà ce que j'ai au final, qu'en pensez-vous ?
#include <stdio.h>
#include <cini.h>
#define CGX 0
#define CGY 0
#define LARG 200
#define HAUT 50
int main() {
int i,j;
CINI_open_window(300,300,"Question9");
for(i=0; i<200; i++) {
for(j=0; j<50; j++) {
CINI_draw_pixel(i,j,"blue");
}
}
for(i=CGX; i<LARG; i++) {
for(j=CGY; j<HAUT; j++) {
if(i<200 && j<50) {
CINI_draw_pixel(i,j,"yellow");
}
else {
CINI_draw_pixel(i,j,"red");
}
}
}
CINI_loop();
return 0;
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
29 janv. 2015 à 23:46
29 janv. 2015 à 23:46
Déjà pour le vocabulaire, cini.h n'est pas une bibliothèque mais un header (contient tous les prototypes des fonctions).
Pour la méthode, il faut déjà poser l'algorithme sur un papier.
Cela veut dire que tu oublies le C et cini.h dans un premier temps, et tu traduis en français ce qu'il faut faire.
Par exemple :
Une fois que tu auras ça, on pourra t'aider à convertir en C / cini.h.
Cdlt,
Pour la méthode, il faut déjà poser l'algorithme sur un papier.
Cela veut dire que tu oublies le C et cini.h dans un premier temps, et tu traduis en français ce qu'il faut faire.
Par exemple :
Pour i = 0 à ... Faire
Pour j = .... Faire
Dessiner(couleur, i, j).
etc.
Une fois que tu auras ça, on pourra t'aider à convertir en C / cini.h.
Cdlt,
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
29 janv. 2015 à 23:56
29 janv. 2015 à 23:56
Ensuite, il te suffira de remplacer :
- Dessiner(couleur, i, j) par : CINI_draw_pixel(i , j, "couleur");
- Pour ... Faire par : for (...; ...; ...)
Pour savoir comment coder le for : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/14722-les-boucles (tu vas au chapitre "La boucle for". C'est court à lire et ça t'aidera si tu ne sais pas écrire une boucle.
Bon courage.
- Dessiner(couleur, i, j) par : CINI_draw_pixel(i , j, "couleur");
- Pour ... Faire par : for (...; ...; ...)
Pour savoir comment coder le for : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/14722-les-boucles (tu vas au chapitre "La boucle for". C'est court à lire et ça t'aidera si tu ne sais pas écrire une boucle.
Bon courage.