PHP绘制SVG工程图纸

需求:根据客户选择产品的可选配置,绘制对应的工程图纸;
1.图纸支持放大缩小不变形
2.绘制侧面三个面(记 A、B、C 面),来绘制平视图
3.绘制俯视图(记 D 面),并且包含半弧形等形状
4.工程图纸中有长宽高等标注信息
5.图形中设置的每个组件,可能每款的参数都不一样,最后的成品要动态生成
6.最终SVG还要能集成到PDF中,并“自动”横竖屏布局等
7.添加扇形开门动画等功能(这个是我后来自己添加上去的)

效果图 A B C 面-平视图
效果图D面-俯视图

图中的所有的尺寸,都是可变的,线条都是绘制出来的;

方案

接到需求的第一想法,就是使用SVG来实现成品的绘图;
SVG(Scalable Vector Graphics)可缩放的矢量图形,它是基于XML正好可以满足需求;当然H5操作的话,会更方便哦。
不过当前项目,我是完全用PHP绘制的!

问题点

1.对SVG的语法还是0基础
2.时间紧迫,加上其他业务功能的开发也就2个星期的时间(目前公司没有测试,自己还要测试)
3.虽然觉得SVG方案可行,但是网上也没有搜索到类似的PHP实现的案例,心理还是有点“慌”
4.后来发现,把SVG集成到PDF中,SVG的某些属性失效了,到时PDF中比较难看(比如 marker 标签,textPath 等,好几处坑再等着,具体忘记了)
5.比较麻烦的点,还要了解产品的基本结构

总结

使用PHP绘制工程图,还是很有意思的,也很有挑战的。
绘制复杂工程图,不仅要画出图来,还要方便自己维护(我大概写了40多个处理类,来分别处理不同的对象)。
这里面设计到坐标计算比较复杂,要有耐心了解产品结构和静心调试!

你可能感兴趣的:(PHP绘制SVG工程图纸)