GUI工具的反向工程xml序列化

时间:2019-08-23 13:42:20

标签: graphics reverse-engineering

我正在尝试对应用程序的一部分进行逆向工程,该部分将用户创建的内容另存为一堆XML文件。该工具是可视工作流编辑器,用户可以在其中通过排列和连接可视块来创建工作流。示例“流”可能看起来像这样:

simple flow

生成的xml,其中删除了一些数据

<?xml version="1.0" encoding="UTF-8"?>
<flow id="">
  <steps>
    <step id="">
      <bounds>
        <x>30.0</x>
        <y>30.0</y>
      </bounds>
      <transitions>
        <transition id="">
          <positions>
            <point>
              <x>405.0</x>
              <y>273.28205128205127</y>
            </point>
            <point>
              <x>711.0</x>
              <y>287.0</y>
            </point>
          </positions>
        </transition>
      </transitions>
    </step>
    <returnStep >
      <bounds>
        <x>180.0</x>
        <y>30.0</y>
      </bounds>
</flow>

transitions数组定义了如何呈现可视块之间的连接,但是我不明白它们的实际含义。如果我在一块空画布上绘制所有点,它们将如下所示:

plot

黑点是块的坐标,红点是在某种程度上与连接块的线有关的坐标。

我的目标是阅读xml文件并在画布上显示工作流程,但我不了解过渡坐标如何映射到实际过渡线。

视觉编辑器支持将点添加到过渡线:

simple flow 2

上述流程的过渡点列表

  <positions>
    <point>
      <x>123.0</x>
      <y>67.96052631578948</y>
    </point>
    <point>
      <x>150.0</x>
      <y>150.0</y>
    </point>
    <point>
      <x>230.0</x>
      <y>80.0</y>
    </point>
  </positions>

产生以下“情节”

plot 2

我想也许它们是某些线条绘制功能的控制点,但是我对计算机图形学并不十分精通。任何帮助将不胜感激。

0 个答案:

没有答案