Question

Je dessine tout un tas de Polygones sur une toile, dont la plupart partagent un bord avec au moins un autre polygone. Je voudrais indiquer qu'un polygone est "spécial" en le décrivant, toutefois, en raison des bords qui se chevauchent, le trait sur un polygone a tendance à être partiellement entraîné par un autre polygone, ce qui le rend plus mince qu’il ne le devrait par endroits. De plus, en fonction de l'ordre du tirage, un polygone peut avoir sa course presque entièrement recouverte par ceux qui l'entourent. Espacer les polygones n’est pas une option très attrayante, car les espaces visibles entre les polygones sont beaucoup moins préférables à ce "trait fin". problème.

Je pense que l’effet recherché peut être obtenu en générant chaque polygone sous la forme d’une paire de polygones, de sorte qu’un polygone soit complètement contenu dans l’autre et que ce polygone plus petit va jusqu’à (mais ne se chevauche pas). ) le coup du polygone extérieur. Le polygone intérieur aurait un remplissage transparent à tout moment et un trait non transparent uniquement lorsque je voudrais indiquer que la paire de polygones actuelle est "spéciale".

Ma question se résume à; comment puis-je tirer un polygone intérieur de cet extérieur, ou à défaut comment obtenir cet effet?

Le polygone en question peut être contraint au polygones réguliers si nécessaire, et le Les traits sont de simples lignes pleines de 1 épaisseur, sans onglets fantaisie ou similaires. J'aimerais pouvoir ajuster l'épaisseur du trait à un moment donné, mais rien de plus sophistiqué que ça.

Était-ce utile?

La solution

Je pense qu'il y a en fait plusieurs moyens de réaliser ce que vous voulez.

D'abord, reprenez votre idée initiale de dessiner un deuxième polygone légèrement plus petit dans le polygone d'origine; ce n'est pas une mauvaise idée. Pour répondre à votre question initiale sur la manière de générer un polygone plus petit: vous pouvez trouver le centroïde de chaque polygone et décaler chaque sommet d'un pourcentage de la distance qui le sépare du point de centroïde du polygone pour obtenir le polygone plus petit. Cela devrait donner un effet agréable.

Une autre solution consiste à utiliser l'ordre z et à compenser l'option "plus épaisse". polygone par une légère distance en z négative.

Pourtant, une autre façon de faire serait d’exploiter l’ordre de tirage au sort; tracez vos polygones les plus épais en dernier, ce qui évitera qu'ils ne soient trop utilisés par les polygones environnants.

Une autre idée qui pourrait fonctionner en fonction de vos besoins pourrait ne pas être du tout de dessiner des polygones, mais de tracer une série de lignes, simplement en épaississant certaines lignes.

Il y a beaucoup d'options pour vous d'essayer; J'espère que vous en trouverez un qui fonctionne bien!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top