日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

码绘与手绘——表达动态

發布時間:2024/3/13 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 码绘与手绘——表达动态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、手繪表現動態:

這個題目一開始看來 ,手繪是處于非常劣勢的地位的,因為電腦上可以實現動態的過程,就是用動畫的原理,每秒繪制60幀,不斷進行重繪圖形,來達到運動的效果的。

而本身來講,手繪的圖片本質上是不能動的,只能通過筆觸來表達,來營造一種動態的效果。這個就比較考驗功底了,表達動態的話,我總結了一下,是通過這些方式的。

(手繪作品如下:)

  • 實際存在的物體本身動作來表達動態。

  • 2. 比如飄逸的發絲,動態的裙擺,都是借助于別的真實的物體來表現運動的。

  • 借助輔助線,或者是虛影,通過不存在的物體來表現。
    比如這幅畫,借助氣體環繞身體,來表達主角的運動感。
  • 通過幾張連續的圖片來表現運動,這些圖片通常差異不大,相對位置也是固定的。也就是逐幀動畫的方法。
  • 這幾張圖是根據自己的碼繪作品來完成的。

    二、動態碼繪的繪制:

    這副作品是通過processing完成的。(不動的話點開大圖)

    這個作業的要求是圍繞“運動”這個主題進行碼繪與手繪,并對比。都是畫畫,那么面臨的第一個問題就是畫什么。于是我先畫了一個小圖形。這個圖案是通過兩個圓形加兩個正方形經過一些旋轉平移完成的。
    代碼如下。

    pushMatrix();rotate(-QUARTER_PI);translate(-s/2.0, 0);ellipse(0, 0, s, s);rect(-s/2.0, 0, s, s);popMatrix();rotate(QUARTER_PI);translate(s/2.0, 0);ellipse(0, 0, s, s);popMatrix(); }

    接著給它添加自旋轉以及兩層循環讓他有規律的鋪滿屏幕。
    這個時候發現如果給每次旋轉都加上一個相位的話,整體呈現了一種波浪的效果,動感非常強烈。在寫循環的時候試了幾個不同的值,最后達到了這個效果。代碼如下:

    void arrange(){ for (int i=1;i<=5;i++){for (int j=1;j<=5;j++){cube(i*120-30,j*120-30,1.5*(i+j));} } } void cube(float x1,float y1,float k){pushMatrix();translate(x1,y1);rotate(millis()/500.0f+(k/3));scale(1.5);love1();popMatrix(); }

    然后又添加了一系列同心圓來增加動感,對于一次性在循環中生成不同半徑的圓,還是很好實現的。
    這個時候嘗試讓每一個圓都可以每次畫的時候自動生成相近的顏色來填充,于是將255分成20等分,最后通過調用fill函數將這個循環的值賦給圓形。

    void aaa(){for(int j=0;j<6;j++){float grayvalues = 255/30;fill(255,(j+15)*grayvalues,255-(j+15)*grayvalues);ellipse(320,320,i*8-(j*100),i*8-(j*100));}i++; if (i > 65) { i=1; } }

    緊接著覺得背景有些單調,于是繪制了雪花圖案。

    void frozen(int x11,int y11,int s) {translate(x11, y11);stroke(85, 115, 200);strokeWeight(12);for (int i=0; i<8; i++) {line(0, 0, 0.4*640, 0);for (int k=0; k<5; k++) {float step = 0.07*k*640;line(step, 0, step+2*s, 2*s);line(step, 0, step+2*s, -2*s);}rotate(TWO_PI / 8);}

    最后將這些想法合并在一張圖上,經過一些入棧出棧的操作進行旋轉平移,最后設置一下繪制順序,整張圖便整合在一張圖上了。

    同時在配色方面下了點功夫,就是借助一些配色方案圖,參考了一下美國動畫片的風格,最后完成了這副作品,參考圖如下。

    完整代碼如下:

    float angle; float y=0;void setup() {size(640, 640); }int i=1;void draw() {background(PAPER);pushMatrix();scale(1.3);frozen(400,220,15);popMatrix();pushMatrix();//translate(360,360);stroke(255,255,15);strokeWeight(8);//scale(0.8);aaa();popMatrix();pushMatrix();translate(50,50);scale(0.8);arrange();popMatrix();}void aaa(){for(int j=0;j<6;j++){float grayvalues = 255/30;fill(255,(j+15)*grayvalues,255-(j+15)*grayvalues);ellipse(320,320,i*8-(j*100),i*8-(j*100));}i++; if (i > 65) { i=1; } }void arrange(){ for (int i=1;i<=5;i++){for (int j=1;j<=5;j++){cube(i*120-30,j*120-30,1.5*(i+j));} } } void cube(float x1,float y1,float k){pushMatrix();translate(x1,y1);rotate(millis()/500.0f+(k/3));scale(1.5);love1();popMatrix(); }void love1(){ float s = 30; pushMatrix();fill(INK);noStroke();ellipseMode(CENTER);pushMatrix();rotate(-QUARTER_PI);translate(-s/2.0, 0);ellipse(0, 0, s, s);rect(-s/2.0, 0, s, s);popMatrix();rotate(QUARTER_PI);translate(s/2.0, 0);ellipse(0, 0, s, s);popMatrix(); }void frozen(int x11,int y11,int s) {translate(x11, y11);stroke(85, 115, 200);strokeWeight(12);for (int i=0; i<8; i++) {line(0, 0, 0.4*640, 0);for (int k=0; k<5; k++) {float step = 0.07*k*640;line(step, 0, step+2*s, 2*s);line(step, 0, step+2*s, -2*s);}rotate(TWO_PI / 8);}}

    三、碼繪與手繪的對比以及思考:

    一、創作體驗:

    碼繪在繪制重復的東西的時候有很強的優勢,因為可以編寫一個函數,進行傳參來不斷調用完成重復的畫面,然后還可以借助循環等等來完成想要的畫面,同時可以加入不同的數學函數,比如隨機數,或者sincos函數等等,最后完成想要的畫面。但如果是畫復雜的線條,碼繪相對來說算坐標的過程就要痛苦些??赡芤脖磉_不出應有的力度和輕重。

    手繪相對來說主觀性和隨機性更強,每一筆畫的時候選擇的位置,每一筆畫的時候進行的輕重,都會對畫作產生不同的影響,同時趣味性也很強。

    二、思路方面:

    進行碼繪的時候思路可能會在出現一些偶然效果的時候立馬發生改變,一開始完成 這幅碼繪的時候還完成了一些輝光效果,后來因為掉幀嚴重于是刪除了,所以思路在碼繪過程中可能是會奠定一個基調,然后在一些偶然的碰撞會發生改變。但是總體想要的效果還算是一個大概效果在腦海中。

    手繪方面一般來說,思路確定好,就跟著思路來畫就好了,為了達到想要的畫面,用不同的顏色不同的筆觸來完成就好了。
    這次的手繪對比圖因為是在完成了碼繪之后照著畫的,所以沒有用什么特殊的方法來繪制,就是通過不同顏色的筆來完成了。

    三、技術以及局限性:

    碼繪更加依賴思路或者是創意,通過不同的數學函數循環隨機數等等將簡單的圖形復雜的動態化。
    對于碼繪來說,稍微復雜一點的線條都可能無法完成,或者需要經過大量的時間來計算其坐標等等。而且可能無法通過筆觸來表達作畫的情緒。

    手繪可以依賴畫畫的技術以及天賦。主觀情緒很重。
    但同時是難以具有交互性以及真正的動態性的。

    四、載體:

    碼繪可能更加適合在電子設備上呈現,如果是一幅動態的交互的碼繪,那只有電子設備才能展示出動態。

    手繪可能更適合的載體是畫布上。
    但在當下電子產品應用廣泛,碼繪和手繪都可以呈現在電子屏幕上。

    但同時可能有些差別,比如有些好的美術手繪作品,是只有肉眼看才能更加體會它的藝術感的,舉個例子比如說是水彩畫,如果沒有近距離看它的厚度與質感,可能藝術感與美感會差很多。如下圖。

    五、自我感受:

    手繪因為它更加容易表達自己的情感,傾注了自己的靈感以及心情,所以過程相對來說非常愉悅。

    而碼繪,因為不太容易的表現自己的想法,以及老出bug,就沒有那么愉悅。嗯。

    六、應用以及結合性:

    近年來板繪的發展,已經是將電子與手繪結合起來的一大步了,通過數位板,我們既可以讓手繪線條的粗細,輕重,手法復刻在電腦上,也可以通過電腦上的工具來將手繪的內容進行復制,旋轉,以及圖像處理,這便是一個很好的結合。
    所以同時我認為碼繪也可以與手繪相結合,可以是同一幅畫面里既有手繪的內容也有碼繪的內容,也可以是通過數位板傳入筆畫之后通過碼繪的數字性以及邏輯性來對每一個像素點進行循環的改動等等,都是很好的結合。

    參考文獻:

    1.《用代碼畫畫》:
    0.1 用代碼畫畫——搞藝術的學編程有啥用?
    https://blog.csdn.net/magicbrushlv/article/details/77922119
    1.1 開始第一幅“碼繪”——以編程作畫的基本方法
    https://blog.csdn.net/magicbrushlv/article/details/77840565

    2 以編程的思想來理解繪畫—— (一)用”一筆畫“表現“過程美”
    https://blog.csdn.net/magicbrushlv/article/details/82634189

    3.https://processing.org/tutorials/gettingstarted/

    4.https://blog.csdn.net/y511374875/article/details/79362957

    總結

    以上是生活随笔為你收集整理的码绘与手绘——表达动态的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。