2017-05-04 24 views
1

我有一个绘制了一条基于音乐播放的音量上的椭圆形,其幅度JS脚本:JavaScript函数的draw()形状像

var song, analyzer; 

function preload() { 
    song = loadSound('sounds/masterflash.mp3'); 
} 

function setup() { 
    createCanvas(250, 250); 
    song.loop(); 

    // create a new Amplitude analyzer 
    analyzer = new p5.Amplitude(); 

    // Patch the input to an volume analyzer 
    analyzer.setInput(song); 
} 

function draw() { 
    background(0, 0, 0, 0) 

    // Get the average (root mean square) amplitude 
    var rms = analyzer.getLevel(); 
    fill(0, 0, 0, 20); 
    stroke(255, 255, 255); 

    // Draw an ellipse with size based on volume 
    ellipse(width/3, height/3, 10+rms*200, 10+rms*200); 
} 

你可以看到它做什么这里https://p5js.org/examples/sound-measuring-amplitude.html样本

你可以看到它创建椭圆的最后一个代码。我怎么能做同样的事情,但不是绘制椭圆,而是加载一个圆形的.png图像?

回答

1

您必须首先将preload Image绘制出来。更多关于image()

尝试这样

function preload() { 
    img = loadImage('images/laDefense.jpg'); 
    song = loadSound('sounds/masterflash.mp3'); 
} 
... 

function draw() { 
    background(0, 0, 0, 0) 

    // Get the average (root mean square) amplitude 
    var rms = analyzer.getLevel(); 
    fill(0, 0, 0, 20); 
    stroke(255, 255, 255); 

    image(img, width/3, height/3, 10+rms*200, 10+rms*200); 
} 
+0

它的工作,但现在的动画集中在左上角,而不是中间。你可以通过播放按钮在这里看到它vtxfactory.org – Rui

+0

@Rui我无法找到你在该网站上的问题,但无论如何你可以调整图像的位置。只要看看参考如何做到这一点https://p5js.org/reference/#/p5/image –