我想在Processing java中继续旋转来自FontAwesome的图标。 (正好是fa-spin图标。)(\ f110)
链接到效果:Example
public void drawIcon(int size, String icon, float custom_height) {
font = createFont("fontawesome-webfont.ttf",size);
textFont(font);
if(icon != null && !icon.trim().isEmpty()) {
text(icon, width / 2, height / custom_height);
}
}
要创建我的图标,我初始化了一个对象并在draw()方法中调用了我的函数:
Content content = new Content(); // content object
PFont font; // font object
public void draw() {
content.drawIcon(46, "\uf110", 7);
}
我从文档中找到了旋转/翻译方法,但无法找出将此图标连续旋转360度的正确参数。
public void draw() {
rotate(degrees(360));
content.drawIcon(46, "\uf110", 7);
}
答案 0 :(得分:0)
我建议在setup()
中加载字体一次,而不是drawIcon()
中每秒加载一次。
您可以在加载字体后使用text()
并调用textFont()
。
e.g。
PFont font; // font object
public void setup() {
font = loadFont("fontawesome-webfont.ttf",46);
textFont(font);
}
public void drawIcon(String icon, float custom_height) {
if(icon != null && !icon.trim().isEmpty()) {
text(icon, width / 2, height / custom_height);
}
}
就旋转而言,此刻您需要连续指定相同的角度。您可能想要做的是创建一个变量来跟踪当前角度,增加角度并将其传递给rotate()
中的draw()
。
PFont font; // font object
int angle = 0;
public void setup() {
font = loadFont("fontawesome-webfont.ttf",46);
textFont(font);
}
public void drawIcon(String icon, float custom_height) {
if(icon != null && !icon.trim().isEmpty()) {
text(icon, width / 2, height / custom_height);
}
}
public void draw() {
//increment angle (angle++; would to the same, but hopefully expanded version is easier to read)
angle = angle + 1;
rotate(degrees(angle));
content.drawIcon("\uf110", 7);
}
请务必查看https://dnhome.wordpress.com/2013/10/07。
您可能会注意到符号可能无法从中心旋转。
这将要求您使用pushMatrix();/popMatrix();
调用使用多个坐标空间。请阅读Rotate Processing example以获取有关如何执行此操作的详细信息。