2014-09-22 25 views
0

我在Processing環境中編寫了一些代碼來創建動態畫筆,它改變顏色。在Java,Javascript和嵌入式JavaScript中運行時,相同的代碼會產生非常不同的結果。在使用java,javascript和使用processing.js運行嵌入時處理的差異

據我所知,在不同模式下處理全局變量沒有區別。我也定義顏色模式,所以即使存在差異,我的定義也應該取代這些。有任何想法嗎?

我有一個全局浮動變量,我增加循環的顏色。 (在HSB模式下的顏色) 我還在整個屏幕上繪製了一個黑色的直角座標,其alpha值非常低,以便逐漸淡出圖畫。

float cH = 0; 
float cS = 0; 
float cB = 0; 
int counter = 0; 
// other variables.... 

setup() 
{ 
    size(800,600); 
    colorMode(HSB, 1.0, 1.0, 1.0); 
    cH = 0.0; 
    cS = 0.74; 
    cB = 0.6; 
    counter = 0; 
    background(0); 
    // .. other setup code 
} 

// ... other code 

mouseDragged() 
{ 
    counter ++; 
    if(counter %5 == 0) {  
     noStroke(); 
     fill(0,0.01); 
     rect(0,0, width, height); 
    } 

    cH += 1/500; 

    if(cH >= 1.0) 
     cH = 0.0; 
    stroke(color(cH, cS, cB)); 
    fill(color(cH, cS, cB)); 

    //... then the code for drawing the shapes 
} 

在JavaScript模式下處理中運行它時,它可以很好地工作。請參閱下面的圖片1,使用顏色更改和淡出 java 運行此相同草圖時,使用javascript嵌入到瀏覽器中,顏色更改將起作用,但繪製在頂部的矩形變爲灰色而不是黑色。具有相同的顏色值! embedded javascript 你可以試一下here

# 當在Java模式,淡出黑色的作品,但顏色變化犯規運行它。刷子保持其初始顏色,紅色。 enter image description here

整個代碼processing.pde文件可以找到here

在我的AppEngine我從加載HTML文件草圖如下:用我確信我是使用processing.js

<html> 
<head> 
    <title>{{name}} Sketch</title> 
    <script src="/statics/processing.js" type="text/javascript"></script> 
    <script src="/statics/javascript.js" type="text/javascript"></script> 

</head> 

    <body> 
     <label>Title</label> 
     <br> 
     <div class="proc"> 
     <canvas id="SKETCH" data-processing-sources="/sketches/{{name}}/{{name}}.pde" > 
    </canvas> 
    <br> 
    this is below the canvas 
    </body> 
</html> 

回答

0

最新版本的這可能是因爲在線路整數除法以前出現的問題cH += 1/500; JS有沒有這樣的事情......

來自:http://processingjs.org/articles/p5QuickStart.html

司預計將產生一個整數可能需要顯式轉換 將處理代碼轉換爲Processing.js時會出現一類錯誤,這些錯誤涉及整數與浮點除法。處理代碼中的直線整數除法轉換爲Processing.js時,有時可能會出現問題,因爲數字會變成雙精度,並引入小數部分。解決方法是明確地施放任何部門來表現出這種行爲的整數

// before 
int g = mouseX/i; 

// after 
int g = (int)(mouseX/i); 
+0

有趣的感謝,我會記住它的未來計劃,但在這種情況下,CH是一個浮動和改變它到「」cH =(float)(cH + 1.0/500);「」沒有區別! – user3674592 2014-09-30 10:18:14

+0

ops,對不起,我錯過了ch是一個浮動。 – 2014-09-30 12:20:43

相關問題