0

我正在努力生成一个 SVG 图像来表示一个图形。对于每个节点,我想显示一个图像。如文档中所述,要使用图像,我需要使用svgaddfileand svgaddimage

我写了这段代码(我只复制有趣的行)

 svgsetgraphviewbox(0, 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, Y(0)-0.5, 20, 20)

 svgaddgroup("Routes", "Delivery routes")
 
svgsave("vrp.svg")
 svgrefresh
 svgwaitclose("Close browser window to terminate model execution.", 1)

我得到以下图像: 结果

图像为 512x512。我究竟做错了什么?肿瘤坏死因子

4

1 回答 1

2

当您从 Workbench 运行时使用 'svgwaitclose' 中的选项 '1' 时,上传图形文件似乎存在时间问题(此选项意味着一旦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)
于 2020-09-10T10:05:46.070 回答