问题描述
我正在努力生成表示图形的SVG图像。对于每个节点,我想显示一个图像。如文档中所述,要使用图像,我需要使用svgaddfile
和svgaddimage
。
我写了这段代码(我只复制了有趣的行)
svgsetgraphviewBox(0,max(i in V_zero_n_plus_one)X(i)+10,max(i in V_zero_n_plus_one)Y(i)+10)
svgsetgraphscale(5)
svgsetgraPHPointsize(5)
svgaddgroup("Customers","Customers",SVG_BLACK)
svgaddgroup("Depot","Depot",SVG_broWN)
svgaddpoint(X(0),Y(0))
svgaddtext(X(0)+0.5,Y(0)-0.5,"Depot")
svgaddfile("./city2.jpg","city.png")
svgaddimage("city.png",X(0)+0.5,20,20)
svgaddgroup("Routes","Delivery routes")
svgsave("vrp.svg")
svgrefresh
svgwaitclose("Close browser window to terminate model execution.",1)
图片为512x512。我究竟做错了什么? Tnx
解决方法
从Workbench运行时,如果在'svgwaitclose'中使用选项'1',则上载图形文件时似乎存在时序问题(此选项表示由mmsvg运行的基础HTTP服务器已停止SVG文件上传后立即生效)。 您可以使用以下表单:
svgwaitclose("Close browser window to terminate model execution.") ! NB: the second argument defaults to value 0
或在此语句之前添加一点延迟:
sleep(2000) ! Wait for 2 seconds
svgwaitclose("Close browser window to terminate model execution.",1)