Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| effacer ou colorer l'intérieur d'un rectangle en biais | |
| | |
Auteur | Message |
---|
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 11:37 | |
| Bonjour à tous les amis Panoramiciens, Après les tensions de ces derniers jours sur certains sujets, qui d'ailleurs sont interressants, je voudrais oublier tout cela et parler uniquement de problèmes à résoudre avec Panoramic. Il ne faut pas oublier que nous sommes tous sur un forum ayant trait à la programmation. Alors voilà mon problème à résoudre avec Panoramic: (Je sens que JL35 va me maudire!) Je suis toujours avec le rectangle en biais! Mais ce que je veux faire, c'est rendre l'intérieur de ce rectangle de couleur unie. Avec une image d'exemple vous comprendrez mieux le problème. [img] [/img] Mon rectangle est dessiné sur un image quelconque, comme dans mon exemple, et je veux pouvoir effacer tout ce qu'il y a à l'intérieur du rectangle ou le faire devenir d'une seule couleur. Je veux que mon rectangle devienne tout bleu ou tout rouge ou tout blanc à l'intérieur. Je crois que l'on peut trouver un algorythme avec les instructions color_pixel_blue , red et green, (j'additionne le colorpixel_blue au red au green et si le résultat est >0 on colore de la couleur désirée) en explorant chaque point à l'intérieur de ce rectangle, chose que je n'arrive pas à faire. Les points A,B,C,D,E,F sont connus, la hauteur HA et la longueur LG sont aussi connus. Si quelqu'un peut m'aider à résoudre ce problème ardu, il m'otera une grosse épine du pied. Cordialement et bonne journée à tous | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 11:51 | |
| Une question bête sans doute,mais pourquoi ne traces-tu pas des lignes parallèles avec un espacement de 1 sur l'axe des y allant de la ligne AB à la ligne EC ?
| |
| | | Invité Invité
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 13:02 | |
| Bonjour, Ca ne fonctionne pas avec 2D_FLOOD? |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 13:28 | |
| Je crois comprendre que l'ami bignono cherche à effacer tout ce qui se trouve à l'intérieur de son (maudit !) rectangle de travers, donc le 2d_flood ne suffira pas. Tu ne peux donc pas tracer des rectangles bien droits, comme tout le monde ? Cela dit, la solution suggérée par Jicehel semble être la meilleure, sans doute la seule logique, aller analyser chaque pixel à l'intérieur pour faire son complément me paraît bien compliqué ! Quoique en traçant des lignes en biais, est-ce qu'on est sûr de recouvrir tous les pixels ? Ou alors faire le flood soi-même (à condition que les contours du rectangle aient une couleur bien particulière, différente de tout ce qu'il y a à l'intérieur): partir du coin supérieur, en haut, et descendre les lignes horizontales une par une et remplir l'intérieur par une ligne, mais ça doit être assez long à dérouler. Dans ta figure-exemple, le mot PANORAMIC en rouge semble être écrit par-dessus le bord du rectangle (en biais ), dans ce cas la solution flood, même personnel, ne conviendra pas, il y aura une fuite ! Alors... solution Jicehel ? Quoique... en y réfléchissant un peu, ce n'est pas aussi simple que ça en a l'air... encore une question à 1000 balles, quoi ! | |
| | | jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 14:10 | |
| bonne question bignono, je crains que le pixel par pixel ne soit d'une lenteur effrayante, non?
on ne peut pas le traiter comme un sprite ou tu colorerait l’intérieur du rectangle, et ton sprite serait un rectangle qui correspondrait a la partie jaune de ton exemple mais ajusté a la taille de ABCE.
je dis surement n'importe quoi mais c'est tout ce qui me vient....
++ jp | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 14:21 | |
| Je ne me suis pas du tout intéressé aux sprites, c'est un tort, je le reconnais, mais est-ce qu'on peut faire pivoter un sprite d'un angle donné ??? | |
| | | jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 14:26 | |
| pas a ma connaissance, mais je suis loin d’être un expert... | |
| | | Invité Invité
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 14:38 | |
| Effectivement, je n'ai pas réfléchi, et ma réponse est un non-sens. Je ne connais pas le programme, mais il y a peut-être une solution. Tout dépend comment est envisagé le logiciel. J'ai fait plusieurs fois un programme d'icône de menu en commande, et non en bitmap. Pour corriger et revenir en arrière, j'ai tout simplement mis les commandes dans une liste. Ainsi en effaçant la page, ou en faisant une copie d'image à un certain moment, j'ai redessiné à partir de la liste. Il suffit à ce moment-là pour ton cas, de sauter l'image de la liste. Est-ce cela est possible à partir de ton source? C'est à toi de voir. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 14:39 | |
| Dans ce cas, je ne vois pas trop comment on peut faire avec un sprite Une solution de flood perso (démo): - Code:
-
dim xa,ya,xb,yb,xc,yc,xd,yd, x, y, x1, maxi dim rc,gc,bc,rb,gb,bb,r, g, b width 0, 600: height 0, 500 picture 1: width 1,500: height 1,450 2d_target_is 1 xa = 133: ya = 100: xb = 466: yb = 166: xc = 433: yc = 366: xd = 100: yd = 300 2d_line xa,ya,xb,yb: 2d_poly_to xc,yc: 2d_poly_to xd,yd: 2d_poly_to xa,ya 2d_flood xa,ya+5,255,255,0: ' remplissage jaune font_bold 0: print " clic pour nettoyer le rectangle" while mouse_left_down(1) = 0: end_while rc = 0: gc = 0: bc = 0: ' couleur du bord du rectangle rb = 0: gb = 0: bb = 255: ' couleur de nettoyage (ici bleu) 2d_pen_color rb,gb,bb maxi = width(1) for y = ya+1 to yd for x = xa to 0 step -1 r=color_pixel_red(1,x,y): g=color_pixel_green(1,x,y): b=color_pixel_blue(1,x,y) if r=rc and g=gc and b=bc then x1 = x+1: exit_for next x for x = x1 TO maxi r=color_pixel_red(1,x,y): g=color_pixel_green(1,x,y): b=color_pixel_blue(1,x,y) if r=rc and g=gc and b=bc then exit_for 2d_point x,y next x display next y for y = yd+1 to yc-1 for x = xc-1 to 0 step -1 r=color_pixel_red(1,x,y): g=color_pixel_green(1,x,y): b=color_pixel_blue(1,x,y) if r=rc and g=gc and b=bc then x1 = x+1: exit_for next x for x = x1 TO maxi r=color_pixel_red(1,x,y): g=color_pixel_green(1,x,y): b=color_pixel_blue(1,x,y) if r=rc and g=gc and b=bc then exit_for 2d_point x,y next x display next y print " Fin !" end Mais... 1) c'est abominablement lent (j'ai mis le display pour faire patienter) 2) bonjour les cas particuliers à tester... | |
| | | Invité Invité
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 15:05 | |
| Je ne pensais pas revenir sur ce post, mais - Citation :
- je ne vois pas trop comment on peut faire avec un sprite
Où as-tu que Bignono parlait de sprite? De toute façon, je ne suis pas un spécialiste des images, donc je n'ai plus à intervenir. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 15:44 | |
| Ben oui cosmos, mais tu as tout lu en diagonale ! Relis bien les échanges, et tu remarqueras que je ne répondais pas à bignono mais à jpcr, qui lui parlait bien de sprites ! | |
| | | jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 17:00 | |
| oui clairement le sprite n'est pas du tout prévu pour ça.
le problème , comme je l'ai déjà dit, va être la vitesse de remplissage.
jp | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 17:49 | |
| Il y a peut-être des solutions ? celle que j'ai présentée c'est bon pour la démo, mais effectivement beaucoup trop lent dans la pratique. Bignono va bien avoir une idée géniale...
Les lignes de Jicehel, ça irait beaucoup plus vite, mais je ne vois pas comment calculer les points de départ et d'arrivée. Tiens, ça me donne une idée... | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 17:52 | |
| Bonjour JL35, JPCR, Cosmos Je viens de rentrer de l'école de musique de mes filles et je prends connaissance de vos réponses. Oui effectivement, la solution de JL35 est affreusement lente! Mais ça répond à ce que je voulais comme résultat. Déjà je vais voir en me basant sur cet algorythme, s'il n'y a pas moyen d'aller un peu plus vite. Pour avoir une idée géniale, c'est pas gagné, car ça fait quand même 5 jours que je réfléchis à ce problème!!! Si vous trouvez aussi une autre solution je suis preneur. Merci à vous. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 18:38 | |
| J'ai une autre solution, je crois, bien plus rapide, basée sur la réflexion de Jicehel. Mais là il va falloir attendre un petit peu, je suis convoqué pour l'hommage rituel au bon chanoine Kir... | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 18:57 | |
| Bon, bah alors je vais me taper un ptit jaune en attendant! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 20:46 | |
| C'est fini ces beuveries ? Mon cher bignono, ce n'est pas encore gagné, mais je ne vois pas ce qu'on peut faire de mieux. J'applique la méthode Jicehel: tracer des lignes parallèles aux bords, avec la couleur de 'nettoyage', mais il reste des pixels non traités. J'ai mis deux couleurs bien contrastées (jaune et bleu) pour mieux les voir. 1er passage, avec des lignes parallèles à la longueur: il y a des pixels non traités, régulièrement espacés. Je rajoute un passage croisé, avec des lignes parallèles à la hauteur: il reste encore des pixels, beaucoup moins, mais bizarrement non régulièrement distribués. Voilà le travail, je ne sais pas si tu peux en tirer quelque chose: - Code:
-
dim xa,ya,xb,yb,xc,yc,xd,yd,x1,y1,x2,y2,k,rb,gb,bb width 0, 600: height 0, 500 picture 1: width 1,500: height 1,450 2d_target_is 1 xa = 133: ya = 100: xb = 466: yb = 166: xc = 433: yc = 366: xd = 100: yd = 300 2d_line xa,ya,xb,yb: 2d_poly_to xc,yc: 2d_poly_to xd,yd: 2d_poly_to xa,ya 2d_flood xa,ya+5,0,0,255: ' remplissage bleu font_bold 0: print " clic pour nettoyer le rectangle" while mouse_left_down(1) = 0: end_while
rb = 255: gb = 255: bb = 0: ' couleur de nettoyage (ici jaune) 2d_pen_color rb,gb,bb ' lignes dans le sens de la longueur du rectangle k = (xa-xd)/(yd-ya): y2 = yb+1 for y1 = ya+1 to yd-1 x1 = k*(yd-y1) + xd+1 x2 = xb - k*(y2-yb) 2D_line x1,y1,x2,y2 y2 = y2+1 next y1 ' lignes dans le sens de la hauteur k = (yb-ya)/(xb-xa): x2 = xd + 1 for x1 = xa+1 to xb-1 y1 = k*(x1-xa) + ya + 1 y2 = k*(x2-xd) + yd 2D_line x1,y1,x2,y2 x2 = x2+1 next x1 END PS au fait j'ai dessiné un rectangle un peu arbitraire, au pif, il faudrait essayer avec un vrai rectangle avec des angles droits, pour voir si le phénomène apparaît toujours.
Dernière édition par JL35 le Mer 22 Fév 2012 - 21:11, édité 1 fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 20:59 | |
| Vous pouvez tricher pour ne pas avoir de points, je pense en bidouillant et en mettant une épaisseur de 3 quand ont est à 3 points du bord par exemple... Ca devrait permettre d'avoir un résultat acceptable, peut-être même sans avoir à faire un tracé croisé... A tester ... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 21:12 | |
| En effet, c'est à creuser... Pas mal Jicehel, je fais un essai avec largeur 2, et plus de trous ! Tu as plein d'idées géniales, mais il faudrait prendre la plume de temps en temps et coder un peu ! Et un seul passage, il fallait y penser: - Code:
-
dim xa,ya,xb,yb,xc,yc,xd,yd,x1,y1,x2,y2,k,rb,gb,bb width 0, 600: height 0, 500 picture 1: width 1,500: height 1,450 2d_target_is 1 xa = 133: ya = 100: xb = 466: yb = 166 xc = 433: yc = 366: xd = 100: yd = 300 2d_line xa,ya,xb,yb: 2d_poly_to xc,yc: 2d_poly_to xd,yd: 2d_poly_to xa,ya 2d_flood xa,ya+5,0,0,255: ' remplissage bleu, pour voir font_bold 0: print " clic pour nettoyer le rectangle" while mouse_left_down(1) = 0: end_while
rb = 255: gb = 255: bb = 0: ' couleur de nettoyage (ici jaune) 2d_pen_color rb,gb,bb 2d_pen_width 2 ' lignes dans le sens de la longueur du rectangle k = (xa-xd)/(yd-ya): y2 = yb+1 for y1 = ya+2 to yd-2 x1 = k*(yd-y1) + xd+1 x2 = xb - k*(y2-yb)-1 2D_line x1,y1,x2,y2 y2 = y2+1 next y1 END Solution la plus élégante et la plus sûre, il suffit de connaître les coordonnées des 4 coins, et on se fiche de la couleur des bords. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 21:35 | |
| Bonsoir, Ah, c'est nettement plus rapide! Pendant que je testais, Jicehel t'as proposé de mettre une épaisseur de trait plus importante, c'est ce que j'avais fait aussi, et j'ai mis 2 comme tu viens de faire. Mais en regardant bien l'image, tu vois que quelques points du tracé du rectangle ont disparu sur le contour, sur le coté droit et en bas. Moi, ce que j'ai fait, j'ai retracé le rectangle juste après et le tour est joué. Bon j'adopte cet algorythme là! Mais c'est pas le tout, faut que je l'adapte à mon programme, maintenant. Merci à toi JL35, t'es le plus fort en géomètrie! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 21:40 | |
| Et pourtant, les cours sont bien loin derrière ! J'avais remarqué pour les bords, et je pensais à des tests, mais si tu redessines le rectangle, alors le problème est résolu !
Et ma foi, tout ça est bien amusant, donc tu n'as pas à me remercier. Mais c'est gentil quand même. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 22:06 | |
| Content pour vous Bon aller, pour faire plaisir à JL35, je me mets un peu sur le code et je vais essayer de vous faire un casse briques et pas en ASCII, avec un peu de couleur et tout pour faire années un peu plus années 90 qu'année 80, mais bon, je réponds sur ce post et là je suis un peu hors sujet, j'abrège donc et je lance mon Panoramic pour m'y mettre ... ^^ | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Mer 22 Fév 2012 - 23:04 | |
| Tu peux utiliser un sprite contenant ton rectangle, l'éffacer facilement avec clear et lui donner sa position en biais en se basant sur une rotation du rectangle du sprite, comme l'a fait jicehel je crois dans mon code de vaisseaux (il me semble).
| |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Jeu 23 Fév 2012 - 9:46 | |
| Bonjour à tous mes amis panoramiciens, Bon, je reviens titiller les neurones à JL35, si il veut bien! Dans mon code suivant, je trace mes rectangles en biais suivant le principe que JL35 m'a donné. Ensuite, j'ai tenté d'appliquer le principe de son nettoyage intérieur du rectangle. J'ai certainement mal du m'y prendre pour les cas particuliers. Lors du nettoyage de l'intérieur d'un rectangle en biais avec un angle aux environs de 270.2° ou 269.8 ou 90.2 ou 89.8, il y a erreur suite à division par 0. Ça doit même dépendre de la longueur du rectangle aussi. Pour 90 ou 270° juste, ya pas d'erreur. D'autre part, ce qui prouve que je fais mal les calculs, c'est quand on enlève l'apostrophe à la ligne 7 (color 1,100,0,0) On voit bien mes erreurs lors du nettoyage suivant certains angles. (D'ailleurs c'est amusant ces figures. Il y a certainement matière à creuser là pour de nouvelles réalisations graphiques). Et puis, j'y pense maintenant en voyant le post de Jicehel "Panorabrique" rien ne l'empêche de mettre des briques en biais avec la méthode de tracé de JL35; ça changerait des traditionnels casse brique (enfin c'est juste une suggestion). - Code:
-
dim xa%,ya%,xb%,yb%,xc%,yc%,xd%,yd%,xe%,ye%,xf%,yf%,xp%,yp%,xv%,yv% dim lg%,ha%,dh%,a,k,pi,mx,my,x1%,y1%,x2%,y2%,ka% label pos_souris,trace,calcul_points,calcul_vide,fin
full_space 0:picture 1:full_space 1
' color 1,100,0,0
image 100 pi=4*atn(1):ha%=300:dh%=ha%/2:2d_target_is 1
main_menu 10 sub_menu 11:parent 11,10:caption 11,"Trace rectangle":on_click 11,trace on_close 0,fin
end
pos_souris: 2d_fill_color 255,255,100 print_locate xp%-20,yp%-30:print "x=";str$(xp%);" y=";str$(yp%) wait 200 return
trace: 2d_image_copy 100,0,0,width(1),height(1) cursor_cross 1 print_target_is 1 repeat xd%=mouse_x_position(1):yd%=mouse_y_position(1) if xd%<>xp% or yd%<>yp% 2d_image_paste 100,0,0 xp%=xd%:yp%=yd%:gosub pos_souris end_if until (mouse_left_down(1)=1 and mouse_left_up(1)=0) 2d_image_paste 100,0,0:2d_image_copy 100,0,0,width(1),height(1) 2d_pen_color 0,0,0:2d_pen_width 2 while mouse_left_up(1)=0 xf%=mouse_x_position(1):yf%=mouse_y_position(1) lg%=sqr(power(xf%-xd%,2)+power(yd%-yf%,2)) if xf%<>xv% or yf%<>yv% 2d_image_paste 100,0,0:gosub calcul_points 2d_line xa%,ya%,xe%,ye%:2d_poly_to xc%,yc%:2d_poly_to xb%,yb%:2d_poly_to xa%,ya% xv%=xf%:yv%=yf%:xp%=xf%:yp%=yf% print_locate xp%-20,yp%-60:print "Angle: ";str$(wrap_value(a));"°";" Épaisseur= ";str$(ha%) print_locate xp%-20,yp%-45:print "Longueur= ";str$(lg%) gosub pos_souris:wait 100 end_if end_while 2d_image_paste 100,0,0 if lg%<>0 2d_line xa%,ya%,xe%,ye%:2d_poly_to xc%,yc%:2d_poly_to xb%,yb%:2d_poly_to xa%,ya% gosub calcul_vide end_if cursor_arrow 1 return
calcul_points: if xf%>xd% k=atn((yd%-yf%)/(xf%-xd%)):a=k*180/pi:a=int(a*100)/100 end_if if xf%<xd% k=atn((yd%-yf%)/(xf%-xd%)):a=k*180/pi:a=int(a*100)/100:a=180+a:k=k+3.14 end_if if xd%=xf% if yf%<yd% then a=90:k=1.57 if yf%>yd% then a=270:k=4.71 end_if xa%=xd%-dh%*sin(k):ya%=yd%-dh%*cos(k): ' point A xe%=xd%+dh%*sin(k):ye%=yd%+dh%*cos(k): ' point E xc%=xe%+lg%*cos(k):yc%=ye%-lg%*sin(k): ' point C xb%=xa%+lg%*cos(k):yb%=ya%-lg%*sin(k): ' point B return calcul_vide: ' ********************************************************************************************************** 2d_pen_color 255,255,255:2d_pen_width 2 if xf%>xd% ka%=(xa%-xe%)/(ye%-ya%):y2%=yb%+1 for y1%=ya%+1 to ye%-1 x1%=ka%*(ye%-y1%)+xe%+1:x2%=xb%-ka%*(y2%-yb%):2D_line x1%,y1%,x2%,y2%:y2%=y2%+1:next y1% ka%=(yb%-ya%)/(xb%-xa%):x2%=xe%+1 for x1%=xa%+1 to xb%-1 y1%=ka%*(x1%-xa%)+ya%+1:y2%=ka%*(x2%-xe%)+ye%:2D_line x1%,y1%,x2%,y2%:x2%=x2%+1:next x1% end_if if xf%<xd% ka%=(xc%-xb%)/(yb%-yc%):y2%=ye%+1 for y1%=yc%+1 to yb%-1 x1%=ka%*(yb%-y1%)+xb%+1:x2%=xe%-ka%*(y2%-ye%):2D_line x1%,y1%,x2%,y2%:y2%=y2%+1:next y1% ka%=(ye%-yc%)/(xe%-xc%):x2%=xb%+1 for x1%=xc%+1 to xe%-1 y1%=ka%*(x1%-xc%)+yc%+1:y2%=ka%*(x2%-xb%)+yb%:2D_line x1%,y1%,x2%,y2%:x2%=x2%+1:next x1% end_if ' ********************************************************************************************** if xd%=xf% if yf%<yd% for y1%=yf%+1 to yd%-1:y2%=y1% x1%=xb%+1:x2%=xc%-1:2D_line x1%,y1%,x2%,y2%:y2%=y2%+1:next y1% end_if if yf%>yd% for y1%=yd%+1 to yf%-1:y2%=y1% x1%=xe%+1:x2%=xa%-1:2D_line x1%,y1%,x2%,y2%:y2%=y2%+1:next y1% end_if end_if ' ********************************************************************************************** 2d_pen_color 0,0,0 2d_line xa%,ya%,xe%,ye%:2d_poly_to xc%,yc%:2d_poly_to xb%,yb%:2d_poly_to xa%,ya% mx=(xd%+xf%)/2:my=(yd%+yf%)/2:2d_fill_cross:2d_flood mx,my,0,0,255 ' ********************************************************************************************************** return fin: terminate Bonne journée à vous tous | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais Jeu 23 Fév 2012 - 9:54 | |
| Je prends note Bignono Ca fera sans doute partie des améliorations à tester quand le moteur simple sera opérationnel, mais bon, je ne suis pas sûr car pour le moment, les rebonds et les tests vont être simples. Si je mets des briques en biais, ça complique beaucoup le test de collision et les rebonds. Théoriquement, il faudrait que l'angle de rebond dépende de l'angle d'arrivée et de l'inclinaison de la brique. Mais là, ça devient du billard, là, je compte sur toi. (Ca ne te tente pas un billard 3D ?) | |
| | | Contenu sponsorisé
| Sujet: Re: effacer ou colorer l'intérieur d'un rectangle en biais | |
| |
| | | | effacer ou colorer l'intérieur d'un rectangle en biais | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |