java rect 旋转_处理(Java可视化语言):使用rectMode(CENTER)而不是rectMode(CORNER)旋转矩形,留下奇数衰落轨迹效果...
我正在練習在物體移動時留下漸變效果的對象。此刻,我正在使一個矩形在畫布的中間順時針旋轉,并在每個幀的畫布上繪制一個低透明度的矩形,從而產生一個不錯的淡入淡出的痕跡。
問題是:僅當我使用rectMode(CORNER)時,衰落軌跡才完全消失。 [我應該提到的是,不提及rectMode默認為CORNER。]這是不可取的,因為矩形圍繞一個角而不是其中心旋轉。
我更喜歡使用rectMode(CENTER),但是該命令的運動軌跡不會完全消失。取而代之的是,這些痕跡建立在完全不透明的純色圓圈的3/4處。
我試圖包括一個奇數3/4運動軌跡圈的屏幕截圖,但被告知我缺乏必要的聲譽。
這太奇怪了,看起來好像是個錯誤。
有任何想法嗎?int shapeSize = 150;
float q = 0;
void setup() {
size(500, 500);
smooth();
noStroke();
background(0);
}
void draw() {
noStroke();
fill( 0, 15); //builds up low-opacity layers over object
rect(0, 0, width, height);
//pushMatrix();
rectMode(CENTER); //TOGGLE ON AND OFF TO SEE THE ISSUE
translate(width/2, height/2);
rotate(q);
noStroke();
fill(255,255);
rect(0,0, shapeSize,shapeSize);
q += 0.02;
//popMatrix(); //Tried toggling push and popMatrix -- no luck
}
最佳答案:
我總是會猶豫要不要指責一種語言有bug :)嘗試以下代碼,我想您會明白為什么會發生這種行為。 (與您的相同,只是我更改了半透明矩形的顏色)。如果您想進一步說明,請發表評論,我很樂意為您服務。int shapeSize = 150;
float q = 0;
void setup() {
size(500, 500);
smooth();
noStroke();
background(0);
}
void draw() {
noStroke();
fill( 100, 15); //builds up low-opacity layers over object
rect(0, 0, width, height);
//pushMatrix();
rectMode(CENTER); //TOGGLE ON AND OFF TO SEE THE ISSUE
translate(width/2, height/2);
rotate(q);
noStroke();
fill(255,255);
rect(0,0, shapeSize,shapeSize);
q += 0.02;
//popMatrix(); //Tried toggling push and popMatrix -- no luck
}
總結
以上是生活随笔為你收集整理的java rect 旋转_处理(Java可视化语言):使用rectMode(CENTER)而不是rectMode(CORNER)旋转矩形,留下奇数衰落轨迹效果...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java如何创造一个整数的类_【技术干货
- 下一篇: java责任链模式做优惠_Java设计模