web-dev-qa-db-ja.com

«3/4パースペクティブ»マップで重なり合うオブジェクトを選択する

私は、発電所の部屋やエリアの機器を表示する2.5Dマップ(3/4パースペクティブ)を画像として作成するアプリケーションのUIを作成しています。部屋の複数の景色はありません。部屋ごとに1つのみです。これらは厳密な制約です。ユーザーはオブジェクトを選択して、機器に関する情報を取得できます。一部の機器は、形状がかなり複雑な場合があります(変圧器またはバルブ付きチューブ)。アプリケーションはキーボードとマウスをベースにしています。ユーザーがアプリケーションを使用することはめったにないため、3Dモデリングソフトウェアとは異なるケース(つまり、必要なオブジェクトを選択するために複数回クリックし、情報を含むダイアログを開くためにダブルクリックする)は手頃な価格ではありません。

したがって、すべてのオブジェクトが表示されている場合、問題はありません。ユーザーがマウスをオブジェクトの上に置くと(オブジェクトによってオブジェクトの表示スタイルが変わります。たとえば、周囲にグローが表示されます)、名前のヒントが表示され、追加するかどうかを決定します情報を取得し、オブジェクト内をクリックして取得します。

ただし、機器の構造が複雑なため、オブジェクトが重なるケースがかなり予想されます。したがって、カーソルの位置に1つ以上のオブジェクトがあり、特に必要なオブジェクトを選択する必要があります。オブジェクトのエッジが少し見えていても、Fitの法則により、オブジェクトを認識してクリックするのは簡単ではありません。

では、問題は、1つの位置に多くのオブジェクトがあることを明確にし、必要なオブジェクトの選択をできるだけ便利にする方法ですか。

これは、状況の原始的なサンプル画像です。

Sample of overlapping objects on the map

pdate:今のところ、ケースの説明にあるように、オブジェクトの背後に他のオブジェクトなしでオブジェクトを選択するとします(機器の名前とホバーの周りにホバーし、クリックするだけでダイアログが開きます)。オブジェクトの量をヒントに表示するためにオブジェクトを重ね、左クリックすると、選択するオブジェクトのリストを含むコンテキストメニューが表示されます。

4

半透明のアプローチは、これらが例のボックスのような単純なオブジェクトである場合、および障害物が1レベルしかない場合にも機能します。しかし、潜在的には、完全にまたは部分的にお互いを妨害する多くのものがあり、それらの形状は複雑であるため、実際の混乱にすぐに変わる可能性があります。マウスオーバーで何らかの解決策を講じることはできますが、ユーザーは部屋全体をマウスでスキャンして、すべてに気づいたことを確認する必要があります。

小さなハンドル/タグをオブジェクトに取り付けて、常に上に置くことができるので、何にも邪魔されません。または、部分的に遮られている可能性があるため、手前のオブジェクトの後ろにオブジェクトが隠れていることは明らかです。それらは「実際の」オブジェクトと視覚的に非常に区別できるため、オブジェクトの一部として認識できず、UI要素であることは明らかです。アイコンやその他の有用な情報要素を含めることもできます。

これらの線に沿った何か(5つのボックスがありますが、3つしか表示されません)

enter image description here

2