艺术家JunKiyoshi作品《Visulize Parameter》

时事   2024-11-07 21:11   中国  

源代码:

https://github.com/junkiyoshi/Insta20241106

本作品使用Openframeworks开发,下面是讲解👇

  1. 头文件包含

    #include "ofApp.h"

    DiffCopyInsert

    这行代码引入了 ofApp.h 文件,通常该文件中定义了 ofApp 类,这个类是整个应用程序的核心。

  2. setup 函数

    void ofApp::setup() {
    ofSetFrameRate(25);
    ofSetWindowTitle("openFrameworks");
    ofBackground(239);
    ofSetColor(39);
    ofEnableDepthTest();

    this->ico_sphere = ofIcoSpherePrimitive(100, 2);
    this->noise_param = ofRandom(1000);
    }

    DiffCopyInsert

  • ofSetFrameRate(25);:设置每秒帧数为 25 帧。

  • ofSetWindowTitle("openFrameworks");:设置窗口标题为 "openFrameworks"。

  • ofBackground(239);:设置背景颜色为 RGB(239, 239, 239)。

  • ofSetColor(39);:设置默认绘制颜色。

  • ofEnableDepthTest();:启用深度测试,以确保在 3D 空间中正确绘制物体的前后关系。

  • this->ico_sphere = ofIcoSpherePrimitive(100, 2);:创建一个边长为 100,细分级别为 2 的球体(球面)。

  • this->noise_param = ofRandom(1000);:生成一个随机数,用作噪声参数。

  • update 函数

    void ofApp::update() {
    if (ofGetFrameNum() % 50 < 20) {
    this->noise_param += ofMap(ofGetFrameNum() % 50, 0, 20, 0.2, 0);
    }
    }

    DiffCopyInsert

    • 该函数用于更新应用程序的状态。它每 50 帧的前 20 帧内,逐渐增加 noise_param 的值。

    • ofGetFrameNum():返回当前的帧番号。

    • ofMap() 函数用于将一个值从一个范围线性映射到另一个范围。

  • draw 函数

    void ofApp::draw() {
    ofPushMatrix();
    ofTranslate(ofGetWindowWidth() * 0.5, ofGetWindowHeight() * 0.25);
    ...
    ofPopMatrix();
    }

    DiffCopyInsert

    • draw 函数是渲染图形的主要地方。在这里它使用 ofPushMatrix() 和 ofPopMatrix() 来保存和恢复当前的变换矩阵,使得位移(如 ofTranslate)只影响特定的绘制部分。

    • ofTranslate(ofGetWindowWidth() * 0.5, ofGetWindowHeight() * 0.25);:将坐标系的原点移动到窗口的中心偏上方。

    这段代码的整体目的是设置一个 3D 场景,利用噪声来产生动态效果,并在屏幕上绘制一个球体和一些形状。随着帧的增加,噪声参数逐渐变化,影响形状的外观,使得动画看起来更加生动。


    如果对这种生成艺术感兴趣,欢迎关注我的Processing课程(学会了无痛过度到Openframeworks)


    我们的工作是探索编程和数学在艺术和设计中一切可能性,形式不限,艺术创作,跨界合作,展览展示,品牌活动等等。位于大洋彼岸的洛杉矶,我们的使命是建设和维护全球华人创意编程和算法艺术社群,形式有开展线上教学,举办社群活动,策划举办艺术展览,挖掘发现本地社群里值得被传播的人和事通过自媒体进行传播。

    我们建了一个读者群

    想进群和其他读者进行精神交流朋友

    加联系微信(推送末尾)

    联 系 我 们

    算法艺术实验室

    探索数学与编程在设计与艺术中一切之可能

    用运算和美学让你变更酷

    主营业务

    科学艺术咨询 | 公共艺术 | 未来舞台美术 | 大数据可视化 | 设计人才猎头 | 品牌Event | 教育

    算法艺术实验室AALab
    探索数学与编程在设计和艺术中的一切可能性
     最新文章