第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何為正在比較的矩形著色?

如何為正在比較的矩形著色?

牛魔王的故事 2023-09-27 21:25:55
我是處理環(huán)境的新手,正在嘗試構(gòu)建一個(gè)用于冒泡排序的可視化工具。我對(duì)此有一些疑問(wèn) -矩形的可視化和繪制是否正確?如何為當(dāng)前正在比較的矩形著色?這可以在 java 中使用 Swing 或任何本機(jī)庫(kù)(即無(wú)需處理)來(lái)完成嗎?如果是的話,請(qǐng)?zhí)峁┮恍┵Y源。int totalNum = 10;int[] values = new int[totalNum];int i = 1;int noOfComp = 0;void draw() {  float rectPos = 0;  frameRate(10);  background(255);  for (int i = 0; i< totalNum; i++) {    //text(values[i], rectPos , values[i]);    stroke(220);    fill(50);    rect(rectPos, height - values[i], width / totalNum, values[i]);    rectPos += width / totalNum;  }  textSize(20);  text("No. Of Comparisons: ", 15, 40);  text(noOfComp, 80, 60);  bubbleSort();}void bubbleSort() {  if (i < totalNum) {    if (values[i] < values[i-1] && noOfComp++ > 0) {      fill(255,5,5);      swap(i, i-1);      delay(100);    }    i++;  } else {    i = 1;  }}void swap(int a, int b) {  int temp = values[a];  values[a] = values[b];  values[b] = temp;}void setup() {  size(700, 700);  for (int i = 0; i< totalNum; i++) {    values[i] = round(random(0, height));  }}
查看完整描述

1 回答

?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

矩形的可視化和繪制是否正確?

這是基于意見(jiàn)的。但它確實(shí)有效,所以是的。該代碼結(jié)構(gòu)良好并遵循基本準(zhǔn)則。


如何為當(dāng)前正在比較的矩形著色?

fill()在繪制矩形之前,您必須設(shè)置單獨(dú)的顏色。顏色由紅色、綠色和藍(lán)色通道組成。通道混合成最終顏色。如果所有 3 個(gè)通道具有相同的比例,則顏色為灰度顏色。(0, 0, 0) 為黑色,(255, 255, 255) 為白色。

例如,將比較的矩形著色為紅色,將所有其他矩形著色為灰色。比較的矩形具有索引ii-1。
由于循環(huán)的控制變量for也被命名為i,因此必須更改(例如j):

for (int j = 0; j < totalNum; j++) {

? ? // [...]

}

將索引i與控制變量進(jìn)行比較j。如果 j==i-1或j==i則設(shè)置紅色填充顏色 ( fill(255, 0, 0)),否則設(shè)置灰色 ( fill(127)):


for (int j = 0; j < totalNum; j++) {

? ? stroke(220);

? ? if (j==i-1 || j==i) {

? ? ? ? fill(255, 0, 0);

? ? } else {

? ? ? ? fill(127);

? ? }

? ? rect(rectPos, height - values[j], width / totalNum, values[j]);

? ? rectPos += width / totalNum;

}

如果您只想為“交換的”矩形著色,則必須確定noOfComp更改的時(shí)間。在調(diào)用prevNoOfComp之前,在變量中聲明先前的交換計(jì)數(shù)。bubbleSort如果交換計(jì)數(shù)發(fā)生變化,只需使用不同的顏色 ( if (noOfComp != prevNoOfComp && (j==i-1 || j==i))):


int noOfComp = 0;

int prevNoOfComp = 0;


void draw() {


? ? float rectPos = 0;

? ? frameRate(10);

? ? background(255);

? ? for (int j = 0; j < totalNum; j++) {

? ? ? ? stroke(220);

? ? ? ? if (noOfComp != prevNoOfComp && (j==i-1 || j==i)) {

? ? ? ? ? ? fill(255, 0, 0);

? ? ? ? } else {

? ? ? ? ? ? fill(127);

? ? ? ? }

? ? ? ? rect(rectPos, height - values[j], width / totalNum, values[j]);

? ? ? ? rectPos += width / totalNum;

? ? }

? ? textSize(12);

? ? text("No. Of Comparisons: ", 15, 40);

? ? text(noOfComp, 80, 60);


? ? prevNoOfComp = noOfComp;

? ? bubbleSort();

}

[...] 可以使用 Swing 或任何本機(jī)庫(kù)在 java 中完成

要求我們推薦或查找書籍、工具、軟件庫(kù)、教程或其他場(chǎng)外資源的問(wèn)題對(duì)于 Stack Overflow 來(lái)說(shuō)是偏離主題的,因?yàn)樗鼈兺鶗?huì)吸引固執(zhí)己見(jiàn)的答案和垃圾郵件。相反,請(qǐng)描述問(wèn)題以及迄今為止為解決問(wèn)題所采取的措施。


查看完整回答
反對(duì) 回復(fù) 2023-09-27
  • 1 回答
  • 0 關(guān)注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)