【发布时间】:2023-03-05 18:21:02
【问题描述】:
我有以下圆圈,由楔形组成。每个楔形都有一个fillPatternImage。每个 fillPatternImage 都有一个带有居中文本的图像。每个楔形的文本长度各不相同。
问题是我需要给每个 fillPatternImage 一个旋转度数,以便所有文本都沿着圆的周边完美对齐。但我不知道每个 fillPatternImage 的旋转度数。
例如,当我将所有 fillPatternImages 旋转角度设为 95° 时,短文本对齐良好,但长文本会弯曲。
我认为每个fillPatternImage 的旋转度数必须是动态的。但我还没有发现如何。我有楔形尺寸、文字宽度等。
fillPatternImage 的代码示例:
imageObj.src = Caption + ".png";
imageObj.onload = function () {
nts.setFillPatternImage(imageObj);
nts.setFillPatternRotationDeg(95);
// nts.setFillPatternOffset(-220, 100);
nts.setFillPatternX(radio - 15);
nts.setFillPatternY(leftSide);
nts.setFillPatternRepeat("no-repeat");
nts.draw();
}
任何想法都会有很大帮助。提前致谢。
【问题讨论】:
-
如果你能用它制作一个 jsfiddle 以便人们可以修补它。我认为它有助于解决这些问题
-
抱歉,部分项目在 Rails 上运行,因为图像是使用 RMagick 生成的。 JsFiddle 需要重构代码的主要部分。
-
您的文本是图像的一部分还是动态文本?如果文本不是图像的一部分,则解决方案会更容易。无论哪种方式,您都需要知道字体大小和字体。
-
@markE:文本部分是图像的一部分。我确实知道字体大小和字体,但我不知道如何使用动态文本实现上述效果。
-
我会回到这个仍未解决的问题:stackoverflow.com/questions/16826393/…
标签: javascript canvas geometry kineticjs trigonometry