Mục lục:

Hướng dẫn lập trình xử lý thú vị cho nhà thiết kế - Điều khiển màu: 10 bước
Hướng dẫn lập trình xử lý thú vị cho nhà thiết kế - Điều khiển màu: 10 bước

Video: Hướng dẫn lập trình xử lý thú vị cho nhà thiết kế - Điều khiển màu: 10 bước

Video: Hướng dẫn lập trình xử lý thú vị cho nhà thiết kế - Điều khiển màu: 10 bước
Video: Một Lỗi Sai Cơ Bản Của Sinh Viên Đại Học Lần Đầu Học Lập Trình Tại Úc #shorts 2024, Tháng bảy
Anonim
Hướng dẫn lập trình xử lý thú vị cho nhà thiết kế - Kiểm soát màu sắc
Hướng dẫn lập trình xử lý thú vị cho nhà thiết kế - Kiểm soát màu sắc

Trong các chương trước, chúng ta đã nói nhiều hơn về cách sử dụng mã để tạo hình thay vì các điểm kiến thức về màu sắc. Trong chương này, chúng ta sẽ khám phá khía cạnh kiến thức này sâu hơn.

Bước 1: Kiến thức cơ bản về màu sắc

Màu sắc, ở một khía cạnh nào đó, đã vượt qua trực giác của con người. Những màu sắc đẹp đẽ khác nhau mà chúng ta nhìn thấy bằng mắt thường thực sự bao gồm các thành phần giống nhau. Chỉ với ba màu ánh sáng đỏ, lục và lam, chúng ta có thể tạo ra tất cả các màu mà mắt người có thể nhìn thấy thông qua hỗn hợp.

Màn hình di động và màn hình máy tính mà bạn đang thấy được tạo ra trên cơ sở nguyên tắc này. Đỏ, lục và lam được gọi là ba màu gốc của ánh sáng. Thông qua tỷ lệ của ba yếu tố, chúng tôi có thể đảm bảo một màu nhất định. Phương pháp mô tả này còn được gọi là chế độ RGB. Trong đó, màu đỏ là R, màu xanh lá cây là G và màu xanh lam là B.

Ngoại trừ chế độ RGB, có một chế độ khác được gọi là chế độ CMYK. Nó thường được kết hợp với in ấn. Trong in ấn, cũng có ba màu gốc. Tuy nhiên, nó khác với ba màu gốc của ánh sáng. Chúng có màu đỏ, vàng và xanh lam riêng biệt. Trong đó, C là màu lục lam, M là màu đỏ tươi và Y là màu vàng. Về mặt lý thuyết, chỉ bằng CMY, chúng ta có thể kết hợp hầu hết các màu. Nhưng do kỹ thuật sản xuất nguyên liệu thô, chúng tôi khó có thể làm cho độ bão hòa của CMY đạt 100%. Nếu trộn ba màu này, chúng ta không thể thu được màu đen đủ tối. Vì vậy, có thêm một chữ K, dành cho mực in đen, là phần bổ sung của quá trình in.

Đối với RGB và CMYK, bạn chỉ cần biết rằng có một sự khác biệt rõ ràng nhất về bản chất. RGB là chế độ màu cộng, giúp tăng độ sáng bằng cách trộn nhiều màu hơn. Trong khi CMYK là chế độ màu trừ, làm tăng độ tối bằng cách trộn nhiều màu hơn. Trong hình dưới đây, chúng ta có thể nhìn thấy một cách trực quan những điểm giống và khác nhau của hai chế độ. Hình bên trái, chúng ta có thể hình dung là một ngôi nhà tối với ba chiếc đèn pin được bật sáng màu khác nhau. Hình bên phải, chúng ta có thể coi nó là một tờ giấy màu nước sau khi chồng lên nhau bằng ba sắc tố đỏ, lục và lam.

Nếu bạn muốn biết sâu hơn về mối quan hệ tương đối giữa các chế độ màu khác nhau, bạn có thể mở photoshop và chọn công cụ chọn màu. Sau đó, bạn có thể xem các giá trị màu của cùng một màu trong các chế độ màu khác nhau một cách trực quan.

Cuối cùng, chúng tôi muốn giới thiệu một chế độ màu phổ biến khác cho bạn, HSB. HSB không có khái niệm về “Màu gốc”. Nó được phân loại theo cảm nhận của mắt người đối với màu sắc. H là viết tắt của màu sắc, S là độ bão hòa và B là độ sáng.

Hue đại diện cho xu hướng màu sắc. Mỗi màu đều có một xu hướng màu nhất định chỉ khi nó không phải là màu nâu, trắng hoặc xám. Khu vực chuyển tiếp màu phong phú nhất trên bộ chọn màu được sử dụng để chỉ ra màu sắc. Giá trị của nó trong PS nằm trong khoảng từ 0 đến 360.

Độ bão hòa có nghĩa là độ tinh khiết của màu sắc. Độ tinh khiết cao hơn mang lại màu sắc sống động hơn. Giá trị của nó trong PS nằm trong khoảng từ 0 đến 100.

Độ sáng có nghĩa là mức độ đậm nhạt của màu sắc, nằm trong khoảng từ 0 đến 100.

So với chế độ RGB, ba chiều của HSB phù hợp hơn nhiều với cảm giác của mắt người đối với màu sắc. Chỉ cần nhìn vào giá trị HSB, bạn có thể hình dung chung nó là loại màu gì.

Đối với cùng một màu, giá trị màu ở chế độ RGB là (255, 153, 71), trong khi ở HSB là (27, 72, 100).

Rất khó để đánh giá nó sẽ như thế nào sau khi trộn ba màu gốc với nhau nếu chúng ta chỉ nhìn vào RGB. Nhưng HSB thì khác. Bạn chỉ cần làm quen với các màu sắc như đỏ là 0, cam là 30 và vàng là 60, sau đó bạn sẽ biết nó sẽ là một màu cam tương đối bão hòa với độ sáng cao và một chút gần với màu đỏ khi H là. 27.

Tiếp theo, chúng ta sẽ tương ứng ba chiều của hai chế độ thành x, y, x trong không gian và vẽ một khối màu để so sánh.

RGB và HSB chỉ là các phương pháp khác nhau để mô tả màu sắc. Chúng ta có thể coi địa chỉ như một phép ẩn dụ. Giả sử nếu bạn muốn nói cho người khác biết vị trí của Cố cung, bạn có thể nói nó ở số 4 đường Kim Sơn, khu Đông Thành, Bắc Kinh. Hoặc bạn có thể nói nó ở 15 giây, 55 phút, 39 độ ở vĩ độ Bắc và 26 giây, 23 phút, 116 độ ở kinh độ Đông. Phương pháp mô tả của HSB tương tự như trước đây. Nếu bạn là người quen thuộc với khu vực tương đối, bạn có thể biết một cách tổng quát vị trí của địa chỉ. Mặc dù RGB có thể chính xác hơn, nhưng nó rất trừu tượng.

Chế độ HSB tồn tại với mục đích giúp chúng ta mô tả màu sắc thuận tiện hơn. Để hiển thị một loại màu nhất định trên màn hình, trước hết chúng ta phải chuyển nó thành chế độ RGB.

Ở trên, chúng tôi giới thiệu ba chế độ màu: RGB, HSB, CMYK. Trong chương trình, bạn chỉ phải tập trung vào hai chế độ: RGB và HSB. Chúng có những lợi thế riêng và ứng dụng riêng của chúng đồng thời. Nếu bạn đã quen thuộc với nó, nó sẽ đáp ứng yêu cầu thiết kế của bạn nhất.

Bước 2: Loại dữ liệu để lưu trữ màu

Để hiển thị màu sắc trong chương trình, chủ yếu chúng tôi sử dụng chế độ RGB trước đây. Tuy nhiên, chỉ bằng cách kiểm soát ba thuộc tính, chúng ta có thể hiển thị bất kỳ màu nào? Trong máy tính, nó là như thế này.

Chúng tôi đã đề cập trước đó trong Xử lý, ngoại trừ R, G, B, chúng tôi có thể chỉ định alpha (độ trong suốt) cho màu sắc. Nhưng alpha không thuộc về thành phần của màu sắc. Sự tồn tại của nó là để hỗn hợp thuận tiện với các màu sắc phía sau. Do đó, để máy tính có thể mô tả chính xác một loại màu nhất định, chúng ta chỉ phải điều chỉnh ba biến quan trọng.

Trong phần sau, chúng tôi bắt đầu giới thiệu một loại dữ liệu Color, được sử dụng chủ yếu để lưu trữ màu sắc. Nó tương tự như các kiểu dữ liệu đã tham khảo trước đây như boolena, int, float.

Ở đây, trước tiên hãy để tôi giải thích về cách sử dụng thực tế của màu sắc. Hãy tưởng tượng điều này: giả sử nếu chúng ta chỉ có thể sử dụng các phương pháp đã thành thạo trước đó để lưu trữ một dữ liệu nhất định, chúng ta sẽ làm gì?

Ví dụ về mã (9-1):

[cceN_cpp theme = "rạng đông"] int r, g, b;

void setup () {

kích thước (400, 400);

r = 255;

g = 0;

b = 0;

}

void draw () {

nền (0);

DirectMode (TRUNG TÂM);

điền (r, g, b);

trực tràng (chiều rộng / 2, chiều cao / 2, 100, 100);

}

[/cceN_cpp]

Đối với các màu có xu hướng màu, chúng ta cần tạo ba biến để lưu dữ liệu trong ba kênh màu tương ứng là đỏ, xanh lá cây và xanh lam. Sau đó, nếu chúng ta muốn gọi tập dữ liệu màu này, chúng ta phải viết nó vào tô màu hoặc nét vẽ.

Nhưng bạn sẽ thấy quá rắc rối khi làm như vậy vì các dữ liệu được kết nối với nhau. Nếu bạn có ý tưởng đóng gói chúng để sử dụng, nó sẽ thuận tiện hơn. Do đó, màu sắc được tạo ra.

Ví dụ về mã (9-2):

[cceN_cpp theme = "bình minh"] color myColor;

void setup () {

kích thước (400, 400);

myColor = color (255, 0, 0);

}

void draw () {

nền (0);

DirectMode (TRUNG TÂM);

tô màu (myColor);

trực tràng (chiều rộng / 2, chiều cao / 2, 100, 100);

} [/cceN_cpp]

Tương tự với các kiểu dữ liệu như int, chúng ta phải sử dụng “color myColor” ngay từ đầu để tạo các biến.

Trong thiết lập, chúng tôi sử dụng “myColor = color (255, 0, 0)” để gán giá trị cho biến myColor. Trong khi màu hàm (a, b, c) thể hiện một cách chính xác rằng tập dữ liệu này đã tạo thành một loại màu để nhập myColor biến. Nếu bạn viết “myColor = (255, 0, 0)”, thì chương trình sẽ bị sai.

Cuối cùng, chúng tôi sử dụng fill () để thực hiện hoạt động của đệm màu. Hàm fill () và stroke () đều có thể chồng lên nhau. Theo số lượng và loại thông số, nó sẽ có tác dụng khác nhau. Chỉ nhập một biến số nguyên, đại diện cho nó là một màu chỉ có thang độ xám. Trong khi nhập một màu thay đổi, điều đó có nghĩa là phạm vi màu sẽ lớn hơn. Bạn cũng có thể nhập một biến màu và một biến số nguyên, thay đổi hàm fill () ở trên thành fill (myColor, 150), sau đó bạn có thể kiểm soát alpha bằng tham số thứ hai.

Bước 3: Phương pháp lấp đầy chồng chéo

đột quỵ, nền có cùng một phương pháp chồng chéo với tô màu.

Đọc giá trị kênh của màu

Ngoài các bài tập, bạn cũng có thể nhận được giá trị RGB trong biến màu một cách độc lập

Ví dụ về mã (9-3):

[cceN_cpp theme = "bình minh"] color myColor;

void setup () {

myColor = color (255, 125, 0);

println (đỏ (myColor));

println (màu xanh lá cây (myColor));

println (xanh lam (myColor));

}

[/cceN_cpp]

Kết quả trong bảng điều khiển: 255, 125, 0.

Hàm red (), green (), blue () sẽ tương đối trở lại giá trị của kênh đỏ, lục và lam trong myColor.

Phép định thập lục phân

Ngoại trừ việc sử dụng số thập phân để hiển thị RGB, chúng ta cũng có thể sử dụng hệ thập lục phân. Hệ thập phân có nghĩa là tăng 1 khi nó gặp 10. Trong khi hệ thập lục phân có nghĩa là tăng 1 khi nó gặp 16. Mối quan hệ tương đối của nó với thập phân là: “0 đến 9” tương ứng với “0 đến 9”,“A đến F”tương ứng với“10 đến 15”.

Hình dưới đây là minh họa của phương pháp chuyển đổi.

Tất nhiên, nếu chúng tôi nhận được một tập hợp các giá trị thập lục phân như ff7800, chúng tôi không phải chuyển đổi nó theo cách thủ công. Chương trình sẽ gán giá trị cho các biến màu một cách trực tiếp. Nó thật tiện lợi.

Chúng ta có thể thấy nhiều thẻ màu trực tuyến đều áp dụng phương pháp thập lục phân để hiển thị màu sắc.

Giống như dribbble của cộng đồng thiết kế, các tác phẩm nghệ thuật sẽ được đính kèm bảng màu. Nếu bạn thấy một màu yêu thích, bạn có thể áp dụng nó vào chương trình.

Ví dụ về mã (9-4):

[cceN_cpp theme = "normal"] color backColor, colorA, colorB, colorC;

void setup () {

kích thước (400, 400);

DirectMode (TRUNG TÂM);

noStroke ();

backColor = # 395b71;

màuA = # c4d7fb;

màuB = # f4a7b4;

colorC = # f9e5f0;

}

void draw () {

nền (backColor);

tô màu (colorA);

trực tràng (200, 200, 90, 300);

tô màu (colorB);

trực tràng (100, 200, 90, 300);

tô màu (colorC);

trực tràng (300, 200, 90, 300);

} [/cceN_cpp]

Bây giờ, màu sắc dễ chịu hơn nhiều với hiệu ứng tốt hơn so với việc nhập các giá trị một cách ngẫu nhiên.

Thêm “#” trước giá trị màu thập lục phân, sau đó bạn có thể chỉ định trực tiếp giá trị cho màu biến.

Bước 4: Chế độ HSB

Bên cạnh chế độ RGB, tiếp theo chúng ta sẽ nói về chế độ HSB. Sau đây là phương pháp gán giá trị của chế độ HSB.

Ví dụ về mã (9-5):

[cceN_cpp theme = "rạng đông"] void setup () {

kích thước (400, 400);

colorMode (HSB);

}

void draw () {

nền (0);

DirectMode (TRUNG TÂM);

for (int i = 0; i <20; i ++) {

color col = color (i / 20.0 * 255, 255, 255);

điền (col);

trực tràng (i * 20 + 10, chiều cao / 2, 10, 300);

}

} [/cceN_cpp]

Trong phần Xử lý, để chuyển chế độ HSB, chúng ta chỉ cần thêm một câu là ColorMode (HSB). Việc sử dụng hàm colorMode () là để chuyển chế độ màu. Nếu chúng ta viết “HSB” trong dấu ngoặc, thì nó sẽ được đặt ở chế độ HSB; trong khi chúng tôi viết “RGB”, nó sẽ được chuyển sang chế độ RGB.

Điều đáng chú ý là khi chúng ta viết colorMode (HSB), giá trị tối đa mặc định của HSB là 255. Điều này khá khác với giá trị tối đa trong Photoshop. Trong Photoshop, giá trị lớn nhất của H là 360, giá trị lớn nhất của S và B là 100. Vì vậy, chúng ta cần thực hiện chuyển đổi.

Nếu giá trị HSB trong Photoshop là (55, 100, 100), khi được chuyển đổi thành Xử lý, giá trị này phải là (55/360 × 255, 255, 255), tức là (40, 255, 255).

colorMode () là một hàm có thể được chồng lên nhau. Sau đây, chúng tôi sẽ giới thiệu chi tiết đến các bạn.

Bước 5: Phương pháp chồng chéo của ColorMode

Do đó, nếu bạn không muốn chuyển đổi giá trị HSB trong Photoshop theo cách thủ công, bạn có thể viết “colorMode ()” thành “colorMode (HSB, 360, 100, 100)”.

Trường hợp ứng dụng chế độ HSB 1

Bởi vì chế độ RGB không hoàn toàn thuận tiện để kiểm soát sự thay đổi của màu sắc, tại thời điểm này, nếu bạn muốn kiểm soát màu sắc linh hoạt hơn, bạn có thể xem xét chế độ HSB.

Ví dụ về mã (9-6):

[cceN_cpp theme = "rạng đông"] void setup () {

kích thước (800, 800);

nền (0);

colorMode (HSB);

}

void draw () {

strokeWeight (2);

đột quỵ (int (millis () / 1000.0 * 10)% 255, 255, 255);

float newX, newY;

newX = mouseX + (tiếng ồn (mili () / 1000.0 + 1,2) - 0,5) * 800;

newY = mouseY + (tiếng ồn (mili () / 1000.0) - 0,5) * 800;

dòng (mouseX, mouseY, newX, newY);

} [/cceN_cpp]

Khi chúng ta kiểm soát H (sắc độ) trong đột quỵ, chúng ta đã sử dụng millis (). Nó sẽ có được thời gian hoạt động từ đầu cho đến nay. Do đó, khi thời gian di chuyển về phía trước, giá trị của H (sắc độ) sẽ tự động tăng lên, sau đó màu sắc sẽ thay đổi.

Đơn vị của mili () là ms. Vì vậy, khi chương trình chạy trong 1 giây, giá trị trả về sẽ là 1000. Điều này sẽ dẫn đến giá trị quá lớn. Vì vậy, chúng ta phải chia nó cho 1000.0.

Bởi vì chúng tôi hy vọng rằng màu sắc sẽ thể hiện một tuần hoàn tuần hoàn, vì vậy chúng tôi phải thực hiện thao tác modulo khi cuối cùng chúng tôi viết tham số đầu tiên trong nét vẽ. Điều này có thể đảm bảo rằng nó sẽ bắt đầu lại từ 0 khi H (hue) đã vượt qua 255.

Hàm strokeWeight () có thể kiểm soát độ dày của các dòng. Đơn vị tương ứng cho các tham số trong ngoặc là pixel.

Bước 6: Trường hợp ứng dụng chế độ 2

Ví dụ về mã (9-7):

[cceN_cpp theme = "bình minh"] int num; // số lượng dòng hiện được vẽ

float posX_A, posY_A; // Tọa độ của điểm A

float posX_B, posY_B; // Tọa độ của điểm B

góc phaoA, tốc độA; // Góc của điểm A, tốc độ

góc nổiB, tốc độB; // Góc của điểm B, tốc độ

bán kính floatX_A, bán kínhY_A; // Bán kính của hình bầu dục tạo bởi điểm A trên trục X (Y).

bán kính floatX_B, bán kínhY_B; // bán kính hình bầu dục tạo bởi điểm B trên trục X (Y).

void setup () {

kích thước (800, 800);

colorMode (HSB);

nền (0);

tốc độA = 0,0009;

tốc độB = 0,003;

bán kínhX_A = 300;

bán kínhY_A = 200;

bán kínhX_B = 200;

bán kínhY_B = 300;

}

void draw () {

dịch (chiều rộng / 2, chiều cao / 2);

for (int i = 0; i <50; i ++) {

gócA + = tốc độA;

gócB + = tốc độB;

posX_A = cos (angleA) * radiusX_A;

posY_A = sin (angleA) * radiusY_A;

posX_B = cos (angleB) * radiusX_B;

posY_B = sin (angleB) * radiusY_B;

đột quỵ (int (num / 500.0)% 255, 255, 255, 10);

dòng (posX_A, posY_A, posX_B, posY_B);

num ++;

}

} [/cceN_cpp]

Hiệu quả hoạt động:

Hình ảnh đầu ra:

Mẫu bạn thấy được tạo ra bởi một đường chuyển động thông qua sự chồng chéo liên tục. Dấu vết của hai điểm cuối đoạn thẳng là hai đường tròn riêng biệt.

Thông qua chế độ HSB, chúng tôi đã kiểm soát những thay đổi của màu sắc. Với sự gia tăng của các dòng, màu sắc sẽ được bù đắp. Khi các đường lớn nửa trong suốt chồng lên nhau, nó sẽ tạo ra gradient màu rất phong phú.

Chúng tôi đã nhúng một vòng lặp for vào hàm vẽ với mục đích sử dụng vòng lặp for để kiểm soát số lượng dòng. Nó tương đương với việc chúng ta đã kiểm soát tốc độ vẽ. Tăng giá trị của điều kiện phán đoán trong vòng lặp for, nó sẽ làm tăng độ thấm của bản vẽ.

Dưới đây là hình vẽ sơ đồ. Bạn có thể thấy dấu vết chuyển động của các vòng tròn rõ ràng hơn.

Điều chỉnh tốc độ và bán kính khác nhau, các mẫu hình thành cũng sẽ khác nhau. Cố gắng thay đổi các biến như góc, tốc độ, bán kínhX, bán kínhY và xem điều gì sẽ xảy ra.

Bước 7: Chế độ hòa trộn lớp

Các chế độ màu khác nhau mà chúng ta đã nói ở phần trước đều được sử dụng để tạo màu cho các thành phần đồ họa. Ngoại trừ việc sử dụng phương pháp này để kiểm soát màu sắc, Xử lý có thể sử dụng các chế độ hòa trộn của các lớp khác nhau như Photoshop.

Mở cửa sổ lớp trong PS, nhấp để chọn chế độ hòa trộn của các lớp, sau đó chúng ta có thể thấy các tùy chọn này.

Đây là các chế độ lớp tồn tại trong PS. Nói một cách đơn giản, chế độ hòa trộn có thể được coi là một loại chế độ tính toán màu sắc. Nó sẽ quyết định màu nào sẽ được tạo ra cuối cùng khi “màu A” cộng với “màu B”. Ở đây “màu A” có nghĩa là màu phía sau lớp hiện tại (còn được gọi là màu cơ bản). "Màu B" có nghĩa là màu của lớp hiện tại (còn được gọi là màu hỗn hợp). Chương trình sẽ tính toán để thu được màu C theo giá trị RGB và alpha của màu A và B. Nó sẽ hiển thị ra màn hình dưới dạng màu kết quả.

Chế độ lớp khác nhau là viết tắt của các phương pháp tính toán khác nhau. Trong nửa tiếp theo của loạt bài viết này, chúng tôi sẽ giải thích chi tiết về vấn đề này. Bây giờ chúng ta chỉ phải biết cách sử dụng của nó trước.

Hãy xem một ví dụ về việc sử dụng Chế độ thêm trong chương trình.

Ví dụ về mã (9-8):

[cceN_cpp theme = "bình minh"] PImage image1, image2;

void setup () {

kích thước (800, 400);

image1 = loadImage ("1.jpg");

image2 = loadImage ("2.jpg");

}

void draw () {

nền (0);

blendMode (ADD);

hình ảnh (image1, 0, 0, 400, 400);

hình ảnh (image2, mouseX, mouseY, 400, 400);

}

[/cceN_cpp]

Kết quả:

Hàm blendMode () được sử dụng để đặt chế độ hòa trộn của đồ họa. Chúng ta điền ADD phía sau nghĩa là chúng ta đã thiết lập Add Mode.

Trong chương trình, không có khái niệm về lớp. Nhưng do có trình tự vẽ của các thành phần đồ họa nên khi ghép ảnh, ảnh 1 được coi là màu cơ bản và ảnh 2 là màu hỗn hợp.

Chế độ ADD thuộc về “Lớp làm sáng”. Sau khi sử dụng nó, bạn sẽ nhận được một hiệu ứng sáng lên.

Dưới đây là một chế độ hòa trộn có thể được sử dụng trong Chế biến.

Bước 8: Chế độ Blending Mode

Chúng ta có thể thử thay đổi chế độ hòa trộn khác nhau để xem hiệu quả.

Khi ví dụ (9-8) đã sử dụng chế độ chồng chéo (nền phải được đặt thành màu trắng):

Sau khi sử dụng Chế độ trừ (nền phải được đặt thành màu trắng):

Bước 9: Trường hợp ứng dụng chế độ hòa trộn lớp

Chế độ hòa trộn không chỉ có thể được sử dụng cho ảnh mà còn phù hợp với tất cả các thành phần đồ họa trong canvas. Bên dưới đã hiển thị cách sử dụng về Chế độ Thêm. Nó có thể được sử dụng để tương tự các hiệu ứng ánh sáng khác nhau.

Ví dụ về mã (9-9):

[cceN_cpp theme = "rạng đông"] void setup () {

kích thước (400, 400);

}

void draw () {

nền (0);

blendMode (ADD);

int num = int (3000 * mouseX / 400.0);

for (int i = 0; i <num; i ++) {

nếu (ngẫu nhiên (1) <0,5) {

điền (0, 50, 0);

}khác{

điền (50);

}

hình elip (ngẫu nhiên (50, chiều rộng - 50), ngẫu nhiên (50, chiều cao - 50), 20, 20);

}

}

[/cceN_cpp]

Ở đây, thông qua chức năng ngẫu nhiên, chúng ta đã pha trộn màu xanh lục và màu trắng, vốn đã mang alpha, vào các hạt. Chúng ta có thể sử dụng chuột để kiểm soát số lượng vòng tròn và xem hiệu ứng chồng chéo.

ADD và SCREEN khá giống nhau. Mặc dù nó giống nhau để làm sáng, có những khác biệt tinh tế. Bạn có thể thay thế nó thành SCREEN và so sánh. Sau khi được chồng lên nhau, độ tinh khiết và độ sáng của ADD sẽ cao hơn. Nó phù hợp để tương tự hiệu ứng ánh sáng.

Về màu sắc, đến đây chúng ta đã kết thúc chương này. Đối với “ngôn ngữ” này, bạn đã thành thạo đủ các kỳ thi. Nào, hãy nhanh tay sử dụng code để tận hưởng thế giới của hình dạng và màu sắc!

Bước 10: Nguồn

Bài viết này từ:

Nếu bạn có bất kỳ câu hỏi nào, bạn có thể liên hệ với : [email protected].

Đề xuất: