Ich suche etwas wie FlDraw , um Grundrisse von Einkaufszentren, Büros, Industrieanlagen und dergleichen zeichnen zu können.
Der Haken ist, dass ich möchte, dass die Teile des Grundrisses identifizierbar sind. Das heißt, ich werde den Grundriss in eine Webseite einbetten und wenn der Benutzer klickt, möchte ich in der Lage sein, das Geschäft, das Büro, den Raum usw. zu identifizieren, auf das er geklickt hat, vorzugsweise mit AngularJs, aber das einfache alte JS reicht zur Not aus .
Tatsächlich _könnte_ diese Frage eine zweiteilige Frage sein – eine, um die Grundrisse zu zeichnen, und – der kniffligere Teil – ein Programm, um das Bild so in Segmente aufzuteilen (stellen Sie sich vor, Sie nehmen eine Karte der USA und skizzieren die Bundesstaaten). (Angular) JS kann feststellen, wann man geklickt hat.
Ich bevorzuge eine Windows-App, bin aber auch offen für Linux.
[Update] Ich benötige SVG, wobei jeder Raum durch einen separaten SVG-Pfad gekennzeichnet ist
[Update++] Ich möchte nur 2D, nicht 3D, und ich möchte nur Wände, Türen, Treppen und dergleichen zeichnen. Was ich nicht möchte, sind viele Optionen für Sofas, Füllschränke, Topfpflanzen und dergleichen. Dies ist für Einkaufszentren und Industrieanlagen. Ich nehme an, ich habe nichts dagegen, dass es einige Ikonen-Toiletten gibt, Notfälle, aber ich kann ohne diese leben, wenn es sein muss.
Schwarz-Weiß ist einfach gut. Ich kann colo(u)r später im HTML hinzufügen, wenn ich möchte.
Das Wichtigste ist, dass jeder Raum ein separater SVG-Pfad ist, sodass zwei benachbarte Räume wirklich zwei sich berührende, aber getrennte „Wände“ zwischen sich haben müssen, nicht nur eine einzelne Linie. Auf diese Weise kann ich jeden Raum in einen SVG-Pfad einschließen und Klicks innerhalb des Raums erkennen.
Es folgt schlechte ASCII-Grafik
+--------------------++--------------------+
| || |
| Room 1 || Room 2 | <----- like this
| || |
| / || / |
+--/ ------------++-/ ----------+
+--------------------+--------------------+
| | |
| Room 1 | Room 2 | <----- NOT like this
| | |
| / | / |
+--/ ------------+-/ ----------+
Um deine zwei Fragen zu beantworten:
kandiert_orange
Mawg sagt, Monica wieder einzusetzen
Mawg sagt, Monica wieder einzusetzen
isPointInPath()
, um Klicks zu erkennen