美文网首页
代码与艺术:《平面构成》读书笔记之1

代码与艺术:《平面构成》读书笔记之1

作者: 少儿创客 | 来源:发表于2019-03-19 13:09 被阅读0次

点的构成

def setup():
    size(600, 600)
    noLoop()
    noStroke()
    

def draw():
    background(0)
    for i in range(10):
        with pushMatrix():
            translate(300, 300)
            for j in range(i * (15-i)):
                with pushMatrix():
                    rotate(radians(j * 360/(i*(15-i))))
                    ellipse(i * 20,0,i * 2, i * 2)
点的排列

点的面积渐变,同时圆形规律排列


绘制圆形改成绘制arc

对于小学生,图形大小、半径、每一圈圆的数量可以用简单的线性关系表示,对于中学生,可以用复杂的三角函数完成计算。

*如何保证每一圈上的圆都是相切的?如何画任意大小随机的圆,圆之间都是相切的。

彩色同心圆


def setup():
    size(600, 600)
    noLoop()
    noStroke()
    colorMode(HSB)
    

def draw():
    background(0)
    for i in range(10):
        with pushMatrix():
            translate(300, 300)
            for j in range(i * (15-i)):
                with pushMatrix():
                    rotate(radians(j * 360/(i*(15-i))))
                    fill(color(random(360),
                               random(360),
                               random(100, 360),
                               ))
                    ellipse(i * 20,0,i * 2, i * 2)
                    # arc(i * 20,0,i * 2, i * 2, radians(-90), radians(90))
                    

利用HSB颜色模式,可以保证颜色的鲜艳:


HSB颜色模式

点的排列中有规律,比如大小,位置,也有随机,比如颜色。
hsb颜色好,随机出来的颜色很鲜艳。

线的错觉

两条平行直线在交叉斜线的背景下会产生错觉


def setup():
    size(600, 300)
    noLoop()
    noStroke()
    colorMode(HSB)
    stroke(0)

def draw():
    background(255)
    gap = 20
    for i in range(width/gap+1):
        print(i)
        line(width/2,height/4,i*gap,height/2)
        line(width/2,height*3/4,i*gap,height/2)
    line(0, height/3+30,width,height/3+30)
    line(0, height*2/3-30,width,height*2/3-30)
内凹的直线

def setup():
    size(600, 300)
    noLoop()
    noStroke()
    colorMode(HSB)
    stroke(0)

def draw():
    background(255)
    gap = 20
    for i in range(width/gap+1):
        print(i)
        line(i*gap,height/4,width/2,height/2)
        line(i*gap,height*3/4, width/2,height/2)
    line(0, height/3,width,height/3)
    line(0, height*2/3,width,height*2/3)

外凸的效果

平行线弯曲的例子,涉及到了循环,line的使用,不太复杂,但是非常有趣,学生可以自己编程验证,学生学习到第2课就可以完成这样的作业。

哪个大

from random import randint
def setup():
    global angle
    size(600, 600)
    angle = 0
    noLoop()
def draw():
    global angle
    background(255)
    
    fill(0)
    with pushMatrix():
        translate(width/4, height/2)
        ellipse(0, 0, 100, 100)
        for i in range(5):
            with pushMatrix():
                rotate(radians(72*i))                
                w = randint(20, 30)
                ellipse(80, 0, w, w)
    with pushMatrix():
        translate(width*3/4, height/2)
        ellipse(0, 0, 100, 100)
        for i in range(5):
            with pushMatrix():
                rotate(radians(72*i))                
                w = randint(40, 55)
                ellipse(80, 0, w, w)
哪个大?

还有就是反套路,本来按照错觉,黑色的物体是容易收缩的,但是,我们可以故意把黑色物体的尺寸调大,形成视觉上的平衡效果。

def setup():
    global w, h
    size(400, 200)
    background(255)
    noStroke()    
    rectMode(CENTER)
    w = width/2 
    h = height
    
def draw():
    global w, h
    background(255)   
    fill(255)
    rect(width/4, height/2, w, h)
    fill(0)
    ellipse(width/4, height/2, w/2+4, h/2+4)
    
    fill(0)
    rect(width*3/4, height/2, w, h)
    fill(255)
    ellipse(width*3/4, height/2, w/2, h/2)
哪个大

这里看上去是一样大的,其实是黑色的大,黑色有收缩的趋势,看上去仍然一样大是因为我们放大了参数。


一样大

趣味视错觉与编程的验证,我们在读书的是,看到很多视错觉,然而我们可以自己构建这样的图

有多少黑点


def setup():
    size(600, 600)
    noLoop()
    noStroke()
    # colorMode(HSB)
    # stroke(0)
    fill(0)

def draw():
    background(100)
    gap = 10
    w = 50
    
    w1 = gap + w
    for i in range(width//(gap + w)):
        for j in range(height//(gap+w)):   
            fill(0)         
            rect(w1 * i, w1 * j, w, w)
            fill(255)
            ellipse(w1 * i-gap/2, w1 * j-gap/2, gap, gap)
有多少黑点

这里用到的函数与前面4课中的类似,是非常好的迁移作业。

扭曲的圆和正方形

def setup():
    size(600, 600)
    noLoop()
    noStroke()
    # colorMode(HSB)
    stroke(0)
    rectMode(CENTER)
    noFill()

def draw():
    background(255)
    with pushMatrix():
        translate(width/2, height/2)
        
        for i in range(36):
            with pushMatrix():
                rotate(radians(10*i))
                line(0,0,width/2,0)
                # ellipse(0, 200, 10, 10)
        
        rect(-100, 0, 100, 100)
        ellipse(100, 0, 100, 100)
扭曲的正方形和圆

相关文章

  • 代码与艺术:《平面构成》读书笔记之1

    点的构成 点的面积渐变,同时圆形规律排列 对于小学生,图形大小、半径、每一圈圆的数量可以用简单的线性关系表示,对于...

  • 平面构成笔记

    构成与图案,构成是现代艺术,图案是装饰艺术,兼收并蓄 平面构成形态要素 1.平面构成形态要素——点 》渐变可产生空...

  • 平面设计中的三大构成该如何学?建议收藏!

    1.什么是三大构成? 三大构成即平面构成、色彩构成与立体构成,是现代艺术设计基础的重要组成部分。这也是现代艺术设计...

  • 3、电商设计的平面构成基本元素

    目录3 3. 1平面构成概述 3.1.1设计及构成的定义 1设计的含义 2构成的定义 3.1.2平面构成 1什么是...

  • 设计专业

    一、平面设计:平面构成,色彩构成,图案造型,字体设计,标志设计,户外广告设计,POP广告设计。 二、环境艺术设计:...

  • 平面设计新手入门—《平面构成》

    一.平面构成的形态要素 1.形态要素之—点 点是平面构成中最小,最基本的元素。一个点,可以准确标明位置,吸引人的注...

  • 代码可读性

    这是一篇结合项目代码与《编写可读艺术的代码》一书结合的读书笔记 代码应当易于理解 《编写可读艺术的代码》这本书告诉...

  • WEB界面与交互设计内容简介

    WEB界面与交互设计内容简介 1.平面构成与设计:学习点的构成形式、线的构成形式、面的构成形式,训练培养各种熟练的...

  • WEB界面与交互设计内容简介2

    WEB界面与交互设计内容简介 1.平面构成与设计:学习点的构成形式、线的构成形式、面的构成形式,训练培养各种熟练的...

  • 色彩学习——色彩形成三要素(光,物体,眼睛)

    色彩构成的基本原理。色彩构成是艺术设计专业的基础也是认知色彩,设计原理的必要环节。 色彩构成,平面构成,立体构...

网友评论

      本文标题:代码与艺术:《平面构成》读书笔记之1

      本文链接:https://www.haomeiwen.com/subject/ybysyqtx.html