Rien ne t'empèche de faire des pavages semi-réguliers (pentagones + quadrilatères par exemple), d'autant que cela développe bien plus les tactiques.
Pour le problème de "c'est trop oval", tu peux moduler en fleur:
- L'ovale est définit par une équation polaire (R = f(a) avec R le rayon dans la direction d'angle a par rapport à l'axe gauche-droite ou haut-bas, avec f=b²/(1-e²*cos²(t)) ou b² est le rayon de base et e l'excentricité je crois, enfin bref, plus b est grand plus l'ellipse est grande mais de forme constante, plus e est proche de 0 plus l'ellipse est ronde plus e est proche de 1 plus l'ellipse est plate)
[image supprimée depuis]
- Tu module f par une sinusoïde de pulsation w, de phase p et d'amplitude A aléatoires pour former g: g(a) = f(a) + A*sin(w*a+p)
- L'équation polaire devient R = f(a) + A*sin(w*a+p)
[image supprimée depuis]
Il est possible de mettre plusieurs ondulations:
[image supprimée depuis]
Attention toutefois à ce que la taille totale maximale de l'ondulation ne dépasse pas le rayon minimal de base de l'ellipse, sinon, il va y avoir un rayon négatif et la forme sera biscornue (on voit des petits traits rouge sur l'axe Pi/2 qui sont dus au fait qu'ici, avec des amplitudes A=0.6 et B=0.7, le rayon en 1.5*Pi est négatif et donc le trait "passe" de l'autre coté du centre polaire):
[image supprimée depuis]
Note: c'est ce système que j'avais utilisé pour générer les contours des villes dans un projet de jeu hors ligne: c'est assez efficace, si on fait attention à cette histoire de "rebroussement" (rayon négatif).
Pour le problème de "c'est trop oval", tu peux moduler en fleur:
- L'ovale est définit par une équation polaire (R = f(a) avec R le rayon dans la direction d'angle a par rapport à l'axe gauche-droite ou haut-bas, avec f=b²/(1-e²*cos²(t)) ou b² est le rayon de base et e l'excentricité je crois, enfin bref, plus b est grand plus l'ellipse est grande mais de forme constante, plus e est proche de 0 plus l'ellipse est ronde plus e est proche de 1 plus l'ellipse est plate)
[image supprimée depuis]
- Tu module f par une sinusoïde de pulsation w, de phase p et d'amplitude A aléatoires pour former g: g(a) = f(a) + A*sin(w*a+p)
- L'équation polaire devient R = f(a) + A*sin(w*a+p)
[image supprimée depuis]
Il est possible de mettre plusieurs ondulations:
[image supprimée depuis]
Attention toutefois à ce que la taille totale maximale de l'ondulation ne dépasse pas le rayon minimal de base de l'ellipse, sinon, il va y avoir un rayon négatif et la forme sera biscornue (on voit des petits traits rouge sur l'axe Pi/2 qui sont dus au fait qu'ici, avec des amplitudes A=0.6 et B=0.7, le rayon en 1.5*Pi est négatif et donc le trait "passe" de l'autre coté du centre polaire):
[image supprimée depuis]
Note: c'est ce système que j'avais utilisé pour générer les contours des villes dans un projet de jeu hors ligne: c'est assez efficace, si on fait attention à cette histoire de "rebroussement" (rayon négatif).