Bonjour,
Je suis en train de programmer un petit moteur graphique. Je gère des textures (qui sont des .bmp), que j'affiche sur le canvas de la form. Ma texture est carré et je voudrais l'appliquer sur des cases qui ne sont pas forcément carré. Une case étant représenter par 4 pts avec leurs coord 2d, comment faire pour 'stretcher' ma texture entre ses 4 coord?
J'ai bien une idée:
[code]
pré requis: pt1 en bas à droite
pt2 en bas à gauche
pt3 en haut à gauche
pt4 en haut à droite
je calcul l'équation de pt1-pt2
je calcul l'équation de pt3-pt4
je calcul mon coeff de grandeur (la diff de longueur entre mes deux droite).
je me met au pt3, je trace la colonne des couleurs de ma texture (la ligne de gauche, de haut en bas) jusqu'a pt2, bien sur, en restant parrallèle à pt2_pt3.Chacune des ces opérations est pondéreées par des coeff, pt2-pt3 n'étant pas forcément parallèle et égale à pt4-pt1...
Bref, je sais pas si je suis clair. Cette méthode me semble bonne (avec scanlines) mais trés longue et trés fastidieuse.
De plus, je ne peux pas installer de composants ou de paquets car mon delphi bug... Je dois faire une fonction qui me renvoie la nouvelle image.
Personne n'a un bout de code? ou une version plus simple que mon idée...
Partager