分类 "随想随写" 下的文章

阅读本文大约需要 2.9 分钟。

曾经的我是一名艺术生,如今是一名程序员。

聊起画画,相信很多人都有疑惑:同样都是画人物,为什么我画不像,或者说我根本就不知道怎么下手。

你不是一个人。给你们看看江苏考卷:

“我明明在画人,但看着好像在画鬼。”


实际上,要把一个人画得像他本人,是需要下苦功夫的。

作为一个过来人,我觉得有两方面:

第一,眼高才能手高,多剖析物体的造型,多看多学习优秀作品。

人类对这个世界的认知是由浅入深的。在我看来,画画和写代码是有很大共同点的。

在计算机的世界里,软件开发离不开“抽象”二字。

抽象,就是在一个具体的问题中,提取出共性的东西,以此来解决复杂的问题。

比如抽象出一个“登录”接口,毕竟在现实世界中,有很多很多的登录方式——QQ、华为、小米、微信……

既然是抽象,那它就是可以解决同类问题的。

很多网站的登录,都有QQ、微信登录,那么 A 写的代码 B 就可以直接拿来用了,这就是一种抽象!

工作这么多年,第一次发现原来 Ctrl+C 和 Ctrl+V 可以被讲得这么高大上。

画画也是同样的道理。

我不知道读这篇文章的人有没有接触过“素描几何体”:

“我不想画几何体,我只想学习怎么画人。”

我真的听过很多这样的话。

再看看下面几张图:

是不是越来越有感觉了?

素描几何体,也只是对世界万物的抽象罢了。

鼻头、鼻翼——球状物体;

鼻梁——梯形、长方体……

如果鼻子比较高,鼻头就是个大球、圆润;

如果鼻子比较塌,鼻球就比较平,那就把球体削掉一点……

眼睛呢?叫眼球吧,秒懂:

至于嘴唇,上唇中间的部位,叫做唇珠,可以简单理解为球体:

更细致一些,它还有顶面和底面,顶面夹起来又延伸到鼻子下方,形成人中……

新手画人真的太难了!

看看水杯,就一个圆柱体嘛,手柄会难画一些,可以分段拆着画。

音箱,就是一个大大的长方体,音箱上的喇叭是圆形的,正中间还有个小球体。

当然,我也不是说一定要从几何体开始,我见过也有部分人跳过这一步,直接走了第二步,天天画日日画,最终画得也不错。

没错,第二点,就是熟能生巧。

站在岸上学不会游泳。不说画人,没有基础的人,画个最简单的长方体都会画错。

为什么?除了透视问题(这个属于认知范畴),还有就是他不知道怎么下手,一根线都画不直。

脑:我知道怎么画了。

手:我是谁我在哪儿我不知道。

这个没办法,只能多多练习,而且时间长了,肌肉记忆会丧失。

可以看看于小冬是怎么画人物的,滑到最底下有视频~

快速勾勒出大动态,确定好头、身体、四肢的位置,

再深入刻画人物细节,

而不是一上来就陷入细节当中。

一切以大局为重!!!

新手画人基本都是,

我先画头,画眉毛,一二三四五六七八根,

画睫毛,一二三四五六七八九十根,画长一点,比较美,

画眼线,画眼角,画眼珠,

画鼻孔,

画嘴,

画腮红……

哦豁,化妆和画画?道理是一样的。

有些人颧骨高,想把颧骨往里收,妆该怎么化?

颧骨高且突出,就人为地把这个转折点往里面画一画,并弱化原来位置。

鼻梁塌,那就把鼻梁两侧的转折加强些。

多画,多化~

积累到一定程度,逐渐就是肌肉记忆了。

眼到手到,一气呵成。


换到一个新的开发环境,蛮多东西要折腾的。特地整理了一下,下次换新电脑也方便。

git:

不使用 rebase,要加上这个设置:

git config --global pull.rebase false

全局配置工作用户名和邮箱,不然会影响到你提交代码:

git config --global user.name  "???"
git config --global user.email "???@???.com"

拉代码的时候强制使用 http 下载:

[url "git@code.???.com:"]
    insteadOf = http://code.???.com/

ssh:

更改 ssh 端口号:

vim ~/.ssh/config
Host code.???.com
Port 22222

特殊权限的 ssh-key,可以用以下命令添加:

ssh-add ~/.ssh/id_rsa_???

env:

一些常用的环境变量:

alias l="ls -alht"
alias q="exit"
alias c="clear"

alias aa="sshpass -p '???' ssh -p22 [my-name]@[host1]"
alias ss="sshpass -p '???' ssh -p22 [my-name]@[host2]"

alias git='LANG=en_US.UTF-8 git'
alias gd="git diff"
alias gs="git status"
alias ga="git add ."
alias gh="git push"
alias gl="git pull"
alias ghl="git push origin [my-name]"
alias glm="git pull origin master"
alias ua='for dir in `ls`; do if [ -d $dir ]; then echo -e "----\n${dir}\n----";cd $dir;pwd=`pwd`;echo -e "----------> ${pwd}\n";git checkout master;git pull origin master;cd ..; fi; done;'

export GOPATH=/Users/[my-name]/go
export GOPROXY='https://goproxy.cn,direct'
export GONOPROXY='code.???.com'
export GONOSUMDB='code.???.com'
export GOPRIVATE='code.???.com'
export GOSUMDB='sum.golang.google.cn'
export GO111MODULE=on

export HOMEBREW_GITHUB_API_TOKEN=???

export PATH="/Users/[my-name]/env/bin:/Users/[my-name]/go/bin:/usr/local/sbin:/opt/homebrew/bin:$PATH"

ua 命令可以把当前文件夹下的所有 git 工程拉取到最新的 master 分支。