web-dev-qa-db-fra.com

Sélection d'objets se chevauchant sur la carte «perspective 3/4»

Je suis en train de faire l'interface utilisateur d'application, qui a une carte 2.5D (perspective 3/4) faite comme image, qui affiche l'équipement dans les salles et les zones de la centrale électrique. Il n'y a pas de vues multiples de la chambre, une seule par chambre. Ce sont des contraintes strictes. L'utilisateur peut sélectionner un objet dessus et obtenir des informations sur l'équipement. Certains équipements peuvent être de forme assez complexe (transformateurs ou tubes avec valves). L'application est basée sur le clavier et la souris. Les utilisateurs utilisent rarement l'application, donc les cas différents du logiciel de modélisation 3D (c'est-à-dire cliquer plusieurs fois pour sélectionner l'objet nécessaire et double-cliquer pour ouvrir la boîte de dialogue avec les informations) ne sont pas abordables.

Donc, si tous les objets étaient visibles, il n'y a pas de problème - l'utilisateur survole par la souris (les objets changent de style visuel - par exemple, la lueur apparaît autour de lui), voit l'indice avec son nom, décide où il devrait obtenir des informations supplémentaires informations et clics à l'intérieur de l'objet pour les obtenir.

Mais en raison de la structure complexe de l'équipement, le cas d'objets qui se chevauchent est plutôt prévu - il n'est donc pas facile de le reconnaître - y a-t-il un ou plusieurs objets à la position du curseur, et, surtout, pour sélectionner le nécessaire. Même si le bord de l'objet est un peu visible, il n'est pas facile de le reconnaître et de cliquer dessus en raison de la loi de Fit.

La question est donc de savoir comment faire comprendre qu'il y a beaucoup d'objets à une position et rendre la sélection de l'objet nécessaire aussi pratique que possible?

Voici l'exemple primitif de la situation:

Sample of overlapping objects on the map

Mise à jour: En ce moment, je suppose de faire la sélection d'objets sans aucun autre derrière eux comme décrit dans le cas (survoler avec le nom de l'équipement et briller, un simple clic ouvre la boîte de dialogue avec des informations) et pour objets se chevauchant pour afficher dans l'indice la quantité d'objets, un clic gauche dessus affiche le menu contextuel avec la liste des objets à choisir.

4
Alex Ovtcharenko

Une approche de semi-transparence pourrait fonctionner s'il s'agissait d'objets simples, comme les boîtes de votre exemple, et aussi si vous n'aviez qu'un seul niveau d'obstruction. Mais comme vous pouvez potentiellement avoir beaucoup de choses qui se gênent complètement ou partiellement, et leurs formes sont complexes, cela risque de se transformer rapidement en véritable gâchis. Vous pourriez faire une sorte de solution au survol de la souris, mais vos utilisateurs devraient alors scanner toute la pièce avec la souris pour s'assurer qu'ils ont tout remarqué, et ils ne seront jamais complètement sûrs.

Vous pouvez attacher de petites poignées/étiquettes aux objets et les avoir toujours sur le dessus, afin qu'ils ne puissent être obstrués par rien. Ou ils pourraient être partiellement obstrués, il est donc clair qu'il y a un objet caché derrière celui du premier plan. Ils peuvent être très distincts visuellement des "vrais" objets, de sorte qu'ils ne peuvent pas être perçus comme faisant partie d'un objet et il est donc clair qu'il s'agit d'un élément d'interface utilisateur. Ils peuvent également contenir des icônes ou d'autres éléments d'information utiles.

Quelque chose dans ce sens (il y a 5 cases bien que vous ne puissiez voir que les trois)

enter image description here

2
Vitaly Mijiritsky