Search form

Barisan linear objek

Lebih lanjut dengan barisan objek.

Audiens

Sebelumnya, kita telah menggambar lingkaran-lingkaran yang berbaris secara horizontal. Mengapa horizontal? Karena yang diubah-ubah adalah koordinat X-nya. Sketch di bawah ini akan membuat lingkaran-lingkaran secara horizontal juga, tetapi mulai dari X 20, dengan selisih langkah sebesar 40. Diameternya adalah 30.

size(200, 200);

for (int i = 0; i < 5; i ++) {
  ellipse(
    20 + 40 * i,  // x-nya yang diubah-ubah
    20,           // y-nya tetap
    30, 30
  );
}

Vertikal

Bagaimana jika kita ingin membuat lingkarannya berderet secara vertikal? Kalau secara horizontal, kita mengubah-ubah koordinat X-nya. Kalau vertikal, berarti Y-nya yang kita ubah.

size(200, 200);

for (int i = 0; i < 5; i ++) {
  ellipse(
    20,           // x-nya tetap
    20 + 40 * i,  // y-nya berubah
    30, 30
  );
}

Miring

Bagaimana kalau miring? Kalau kita ubah x dan y sekaligus, kita akan mendapatkan lingkaran-lingkaran tersebut berbaris miring. Mengapa bisa begitu? Karena sambil berubah ke kanan, lingkarannya juga berubah ke bawah.

size(200, 200);

for (int i = 0; i < 5; i ++) {
  ellipse(
    20 + 40 * i,  // x-nya berubah
    20 + 40 * i,  // y-nya berubah
    30, 30
  );
}

Kalau kamu mengombinasikan selisih jarak yang berbeda, kamu juga akan mendapatkan kemiringan yang berbeda. Ini adalah penerapan dari persamaan garis dan gradien yang kamu pelajari di sekolah.

size(200, 200);

for (int i = 0; i < 5; i ++) {
  ellipse(
    10 + 30 * i,
    30 + 60 * i,
    30, 30
  );
}
size(200, 200);

for (int i = 0; i < 5; i ++) {
  ellipse(
    30 + 30 * i,
    200 - 60 * i,
    30, 30
  );
}

Barisan linear

Karena barisan yang kita buat ini selalu membentuk garis lurus, maka kita boleh sebut konsep ini sebagai barisan linear. Ini ada hubungannya dengan fungsi linear dan barisan aritmatika (yang sebenarnya adalah fungsi linear juga).

Ukuran juga berubah?

Selain dengan posisi, kamu juga bisa bereksperimen dengan diameternya.

size(200, 200);

for (int i = 0; i < 5; i ++) {
  ellipse(
    20 + 40 * i,
    20 + 40 * i,
    10 + 4 * i,  // diameter juga berubah
    10 + 4 * i   // diameter juga berubah
  );
}
size(200, 200);

for (int i = 0; i < 5; i ++) {
  ellipse(
    20 + 40 * i,
    20 + 40 * i,
    10 + 5 * i,
    55 - 3 * i
  );
}

Tunjukkan kreativitasmu

Warna juga bisa diset menggunakan fill. Karena fill menerima argumen berupa bilangan, maka kita bisa menggunakan perhitungan for di dalamnya juga.

size(200, 200);
background(0);
noStroke();

for (int i = 0; i < 5; i ++) {
  fill(
    10 + 40 * i,
    255 - 45 * i,
    0
  );

  ellipse(
    20 + 40 * i,
    20 + 40 * i,
    10 + 5 * i,
    55 - 3 * i
  );
}

Dengan menggunakan lebih dari satu perintah elips, kamu bisa membuat gambar yang lebih kompleks. Cobalah pelajari sketch di bawah ini.

size(200, 200);
background(0);
noStroke();

// Ulang dari 0 sampai 8
for (int i = 0; i < 9; i ++) {
  // atur warnanya
  fill(10 + 40 * i, 255 - 45 * i, 0);

  // Tepian
  ellipse(10 + 20 * i, 10, 18, 18);
  ellipse(190, 10 + 20 * i, 18, 18); 
  ellipse(190 - 20 * i, 190, 18, 18);
  ellipse(10, 190 - 20 * i, 18, 18);
  
  // Huruf O di tengah
  ellipse(100, 100, 150 - 20 * i, 150 - 10 * i);
}

Atau menggunakan lebih dari satu for.

size(200, 200);
background(0);
noStroke();

// Garis horizontal
for (int i = 0; i < 10; i++) {
  fill(10 + 20 * i, 88, 0);
  
  ellipse(10 + 20 * i, 140, 30, 30);
}

// Dua garis miring
for (int i = 0; i < 10; i ++) {
  fill(10 + 20 * i, 255 - 22 * i, 0);

  ellipse(100 + 10 * i, 10 + 20 * i, 30, 30);
  ellipse(100 - 10 * i, 10 + 20 * i, 30, 30);
}

Latihan

Cobalah membuat gambar seperti di bawah ini.

Beri tanggapan