没有匹配函数‘operator *(transform, void)’

没有匹配函数‘operator *(transform, void)’

我需要旋转一个标签,它实际上是一个导入的图像,这里称为file.jpg

鉴于其定义rotate()

transform rotate(real angle, pair z=(0,0));

以及答案这个问题规定旋转必须从左侧应用于对象,我尝试了以下最小尝试

settings.tex="pdflatex";

pair center = (200, 100);
rotate(45, center)*label(graphic("file.jpg"), center);

使用真实的图像文件,它会抛出错误

 no matching function 'operator *(transform, void)'

我在这里做错了什么?

答案1

label()你可能会注意到函数和对象之间的区别label,以及函数rotate()与它们的关系。特别是,签名label()

void label(Label L, triple position);

这意味着该对象graphic("file.jpg")确实表现得像一个Label。由于rotate()必须应用于一个Label,因此您只需执行

label(rotate(45, center)*graphic("file.jpg"), center); 

相关内容