如何通过 svg 文件在 Tkinter python 的平面图中查找对象?
How to find objects in floor plan image in Tkinter python through svg file?
我有一张矢量化平面图图像。我想通过该图像的 SVG 文件中的矢量数据来识别图像中的对象。 SVG 代码之间没有任何闭合点 (z)。所以我无法理解该点何时移动到另一个对象?有人可以帮我吗?
我对这些 SVG 文件以及在 Tkinter 中使用它们知之甚少。所以请有人帮助我或建议我该怎么做?
这是图像的矢量数据。
vector data of the image
与SO floorplan question结合使用。
跳转到 z_final_floorplan.svg 以获得最终文件。
一个
创建 4 个文件:
w_original_floorplan.svg
x_rough_static_floorplan.svg
y_rough_live_floorplan.svg
z_final_floorplan.svg
w_original_floorplan.svg 和 x_rough_static_floorplan.svg 除文件名外完全相同。
y_rough_live_floorplan.svg 和 z_final_floorplan.svg 为空;待填充。
将x_rough_static_floorplan.svg复制到y_rough_live_floorplan.svg。
使用服务器在浏览器上打开 y_rough_live_floorplan.svg。
x_rough_static_floorplan.svg 找到所有 M 并替换为两个换行符/符号 M(区分大小写)。 shift + 输入 shift + 输入 /M
B
[这一段花时间]
删除 y_rough_live_floorplan.svg 路径中的第一个 '/' [显示 blackout_floorplan]
Label x_rough_static_floorplan.svg code section blackout_floorplan where code is.
(此文件用作草稿,因此 xml / svg 是否有效无关紧要)
在 y_rough_live_floorplan.svg 中找到下一个 '/' 并将其删除 [显示 floorplan_top_left_whiteout]
Label x_rough_static_floorplan.svg code section floorplan_top_left_whiteout where code is.
有 x_rough_static_floorplan.svg 和 y_rough_live_floorplan.svg 在 2 windows 中打开,将在他们每个人身上来回走动。一直重复直到结束。
(提示:查找工具似乎可以从 vscode 中的文件切换,因此您可以轻松使用 find / 和下一个 cmd + g)可能方便地打印原始 svg 的纸质输出作为参考并标记您创建的对象的名称 e.g.bath、sink、table(不要被这个愚弄,一个 table 是 'table'。是 2nd chair chair2, chair_2, chair_two 等等?) 等等..
C
重新排序路径 x_rough_static_floorplan.svg 中的所有标签和相应代码,以便标签彼此相邻排序,但按照它们在路径中找到的顺序:
例如
…
平面图
洗澡
下沉
table_chairs
沙发
…
在这里使用'find'工具。这个过程本身需要一个临时文件来复制和粘贴,而不是在正在处理的文件中重新排序。并将 temp 重写为正在处理的文件。创建对象清单并在完成时划掉可能是个好主意。
例如。平面图、浴室、table_chairs、水槽……
D
从分组的对象创建路径元素,将每个 id 设置为 id=“floorplan_main”、id=“bath”、id=“sink” 等..等..
请记住,绘制此数据的方式非常非常糟糕。实际上,应该尽可能使用矩形的 rect 元素绘制它们,并且很多路径数据是非常不必要的,但这显然是应用程序生成 svg 的方式。
我有一张矢量化平面图图像。我想通过该图像的 SVG 文件中的矢量数据来识别图像中的对象。 SVG 代码之间没有任何闭合点 (z)。所以我无法理解该点何时移动到另一个对象?有人可以帮我吗?
我对这些 SVG 文件以及在 Tkinter 中使用它们知之甚少。所以请有人帮助我或建议我该怎么做?
这是图像的矢量数据。 vector data of the image
与SO floorplan question结合使用。 跳转到 z_final_floorplan.svg 以获得最终文件。
一个
创建 4 个文件:
w_original_floorplan.svg
x_rough_static_floorplan.svg
y_rough_live_floorplan.svg
z_final_floorplan.svg
w_original_floorplan.svg 和 x_rough_static_floorplan.svg 除文件名外完全相同。
y_rough_live_floorplan.svg 和 z_final_floorplan.svg 为空;待填充。
将x_rough_static_floorplan.svg复制到y_rough_live_floorplan.svg。
使用服务器在浏览器上打开 y_rough_live_floorplan.svg。
x_rough_static_floorplan.svg 找到所有 M 并替换为两个换行符/符号 M(区分大小写)。 shift + 输入 shift + 输入 /M
B
[这一段花时间]
删除 y_rough_live_floorplan.svg 路径中的第一个 '/' [显示 blackout_floorplan]
Label x_rough_static_floorplan.svg code section blackout_floorplan where code is.
(此文件用作草稿,因此 xml / svg 是否有效无关紧要)
在 y_rough_live_floorplan.svg 中找到下一个 '/' 并将其删除 [显示 floorplan_top_left_whiteout]
Label x_rough_static_floorplan.svg code section floorplan_top_left_whiteout where code is.
有 x_rough_static_floorplan.svg 和 y_rough_live_floorplan.svg 在 2 windows 中打开,将在他们每个人身上来回走动。一直重复直到结束。
(提示:查找工具似乎可以从 vscode 中的文件切换,因此您可以轻松使用 find / 和下一个 cmd + g)可能方便地打印原始 svg 的纸质输出作为参考并标记您创建的对象的名称 e.g.bath、sink、table(不要被这个愚弄,一个 table 是 'table'。是 2nd chair chair2, chair_2, chair_two 等等?) 等等..
C
重新排序路径 x_rough_static_floorplan.svg 中的所有标签和相应代码,以便标签彼此相邻排序,但按照它们在路径中找到的顺序:
例如
…
平面图
洗澡
下沉
table_chairs
沙发
…
在这里使用'find'工具。这个过程本身需要一个临时文件来复制和粘贴,而不是在正在处理的文件中重新排序。并将 temp 重写为正在处理的文件。创建对象清单并在完成时划掉可能是个好主意。 例如。平面图、浴室、table_chairs、水槽……
D
从分组的对象创建路径元素,将每个 id 设置为 id=“floorplan_main”、id=“bath”、id=“sink” 等..等..
请记住,绘制此数据的方式非常非常糟糕。实际上,应该尽可能使用矩形的 rect 元素绘制它们,并且很多路径数据是非常不必要的,但这显然是应用程序生成 svg 的方式。