如何在Processing中继续旋转FontAwesome图标?

时间:2017-06-08 10:28:17

标签: java processing

我想在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);
}

1 个答案:

答案 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以获取有关如何执行此操作的详细信息。