轻松入门,6大绘图练习助你立即上路!
2023-11-01 05:56:05
抛弃固有思维,拥抱绘图的本质:线条的无限魅力
点:线条的起点,也是情感的载体
我们描绘的一切事物都是从点开始的。点可以是细腻的、大胆的、密集的或稀疏的。通过玩味点的变化,你可以创造出令人惊叹的质感和纹理。试着使用点描法勾勒一个物体或场景,你会发现这种看似简单的技巧能带来丰富的视觉效果。
练习 1:点描和交叉线
用点和交叉线来描绘一个物体或场景,感受不同线条带来的不同质感和视觉效果。点描可以表现出微妙的光影变化,而交叉线可以增加深度和细节。
代码示例:
import cv2
import numpy as np
# 创建空白画布
img = np.zeros((500, 500), dtype=np.uint8)
# 用点描法绘制圆形
for i in range(100):
for j in range(100):
if np.random.rand() < 0.5:
img[i, j] = 255
# 用交叉线绘制正方形
for i in range(100, 200):
for j in range(100, 200):
if i == 150 or j == 150:
img[i, j] = 255
# 显示图像
cv2.imshow('点描和交叉线', img)
cv2.waitKey(0)
线条:从基本到自由,释放你的想象力
线条不仅是轮廓,更是一种表达情感和创造力的媒介。从垂直和水平线条开始练习,感受如何控制线条的方向和力度。然后探索直线和曲线,体验不同的节奏和韵律。最后,尽情发挥你的想象力,挥洒出自由的线条,不受任何束缚。
练习 2:垂直、水平、直线和曲线
用垂直线和水平线建立画面结构,然后尝试绘制直线和曲线,感受不同线条带来的不同情绪和动态。
代码示例:
import cv2
import numpy as np
# 创建空白画布
img = np.zeros((500, 500), dtype=np.uint8)
# 绘制垂直线
for i in range(0, 500, 50):
cv2.line(img, (i, 0), (i, 500), (255, 0, 0), 2)
# 绘制水平线
for i in range(0, 500, 50):
cv2.line(img, (0, i), (500, i), (0, 255, 0), 2)
# 绘制直线
cv2.line(img, (100, 100), (400, 400), (0, 0, 255), 2)
# 绘制曲线
cv2.ellipse(img, (250, 250), (100, 50), 0, 0, 360, (255, 255, 0), 2)
# 显示图像
cv2.imshow('垂直、水平、直线和曲线', img)
cv2.waitKey(0)
光影:用线条塑造空间,增添深度
线条不仅仅是平面上的痕迹,它们还可以创造出光影效果,塑造出空间感。观察物体或场景的光影变化,用深浅不同的线条来表现明暗对比、投影和反光。
练习 3:明暗对比、投影和反光
用线条来表现明暗关系,塑造物体或场景的形体。尝试表现投影和反光,让你的绘画更具真实性和空间感。
代码示例:
import cv2
import numpy as np
# 创建空白画布
img = np.zeros((500, 500), dtype=np.uint8)
# 绘制立方体
cv2.rectangle(img, (100, 100), (400, 400), (255, 255, 255), -1)
# 添加明暗效果
for i in range(100, 400):
for j in range(100, 400):
if i < 250 and j < 250:
img[i, j] = 255
elif i >= 250 and j < 250:
img[i, j] = 200
elif i >= 250 and j >= 250:
img[i, j] = 150
# 添加投影
cv2.rectangle(img, (150, 400), (350, 500), (128, 128, 128), -1)
# 显示图像
cv2.imshow('明暗对比、投影和反光', img)
cv2.waitKey(0)
动态:用线条捕捉瞬间,表现生命力
线条可以捕捉瞬间的动态,表现物体的运动和情绪。试着捕捉动态中的物体或人物,用连续的线条或夸张的线条来表现他们的动作和神态。
练习 4:速写、连续线和夸张线
用快速、流畅的线条进行速写,捕捉动态中的物体或人物。尝试用连续线来表现运动轨迹,或用夸张的线条来增添幽默或戏剧效果。
代码示例:
import cv2
import numpy as np
# 创建空白画布
img = np.zeros((500, 500), dtype=np.uint8)
# 绘制奔跑的人物
cv2.line(img, (100, 100), (200, 200), (255, 0, 0), 2)
cv2.line(img, (200, 200), (300, 300), (255, 0, 0), 2)
cv2.line(img, (300, 300), (400, 400), (255, 0, 0), 2)
# 添加连续线
for i in range(100, 400):
cv2.line(img, (i, i), (i+1, i+1), (0, 255, 0), 1)
# 添加夸张线
cv2.line(img, (150, 150), (250, 250), (0, 0, 255), 5)
# 显示图像
cv2.imshow('速写、连续线和夸张线', img)
cv2.waitKey(0)
构图:用线条引导视线,创造平衡
线条不仅可以描绘物体和表现动态,它们还可以用来引导视线和创建平衡的构图。试着使用三分法或黄金分割来安排画面元素,创造和谐、引人注目的构图。
练习 5:三分法和黄金分割
用三分法或黄金分割来划分画面,并放置重要的元素在这些关键位置。你会发现这种简单的技巧可以显著提高你的构图效果。
代码示例:
import cv2
import numpy as np
# 创建空白画布
img = np.zeros((500, 500), dtype=np.uint8)
# 添加三分法网格
for i in range(1, 3):
cv2.line(img, (166*i, 0), (166*i, 500), (255, 0, 0), 1)
cv2.line(img, (0, 166*i), (500, 166*i), (255, 0, 0), 1)
# 添加黄金分割网格
cv2.line(img, (318, 0), (318, 500), (0, 255, 0), 1)
cv2.line(img, (182, 0), (182, 500), (0, 255, 0), 1)
cv2.line(img, (0, 309), (500, 309), (0, 255, 0), 1)
cv2.line(img, (0, 191), (500, 191), (0, 255, 0), 1)