2015-05-31 5 views
12

का उपयोग कर निर्माण मैं आकार और संख्या के साथ एक सरल चित्र बनाने के लिए कर रहा हूँ।एक एनीमेशन अजगर Gizeh

import gizeh as gz 

W, H = 500, 300 

surface = gz.Surface(W,H, bg_color=(1,0.7,1)) 

for a in range(1,9): 
    rect = gz.rectangle(lx = 10, ly = 10, xy=(W/a,H/a), fill =(0,1,0.7)) 
    rect.draw(surface) 
    txt = gz.text(str(a), fontfamily="Dancing Script", fontsize=15, fill=(0,0,0),xy=(W/a,H/a)) 
    txt.draw(surface) 

surface.ipython_display() 

मैं भी moviepy का उपयोग कर एक संस्करण बनाया है: मैं निम्नलिखित कोड का उपयोग कर रहा

import numpy as np 
import gizeh as gz 
import moviepy.editor as mpy 

W, H = 500, 300 
duration = 5 
figpath = '/tmp/' 
fps = 1 

def make_frame(t): 

    surface = gz.Surface(W,H, bg_color=(1,1,1)) 

    rect = gz.rectangle(lx = 10, ly = 10, xy=(W/(t+1),H/2), fill =(0,1,0.7)) 
    rect.draw(surface) 
    txt = gz.text(str(t+1), fontfamily="Dancing Script", fontsize=15, fill=(0,0,0),xy=(W/(t+1),H/2)) 
    txt.draw(surface) 

    return surface.get_npimage() 

clip = mpy.VideoClip(make_frame, duration=duration) 
clip.write_videofile(figpath + 'trax_0.mp4', fps=fps) 

clip.ipython_display(fps=fps, width=W, autoplay=0, loop=0) 

मैं के प्रत्येक चरण के बीच एक समय देरी का उपयोग कर एनिमेटेड GIF बनाने में सक्षम होना चाहते हैं चक्र। Gizeh के लेखक की ओर से एक मॉड्यूल -

उत्तर

1
#!/usr/bin/env python3 

import numpy as np 
import gizeh as gz 
import moviepy.editor as mpy 

W,H = 128,128 # 128x128 pixel 
duration = 2 # 2 seconds 
ncircles = 20 # Number of circles 

def make_frame(t): 

    surface = gz.Surface(W,H) 

    for i in range(ncircles): 
     angle = 2*np.pi*(1.0*i/ncircles+t/duration) 
     center = W*(0.5+ gz.polar2cart(0.1,angle)) 
     circle = gz.circle(r= W*(1.0-1.0*i/ncircles), 
           xy= center, fill= (i%2,i%2,i%2)) 
     circle.draw(surface) 

    return surface.get_npimage() 

clip = mpy.VideoClip(make_frame, duration=duration) 
clip.write_gif("circles.gif",fps=15, opt="OptimizePlus", fuzz=10) 

enter image description here

2

MoviePy उपयोग करने के लिए प्रयास करें। एक अच्छा लेख पर
देखो जहां Gizeh और MoviePy एनीमेशन के लिए उपयोग किया जाता है: http://zulko.github.io/blog/2014/09/20/vector-animations-with-python/

+1

मैं यह पहले से ही किया है। मेरा प्रश्न कैसे मैं एक "स्पष्ट" साइकिल का उपयोग आयामों को नियंत्रित करने के लिए है और 'टी' समारोह पैरामीटर – Hugo

+0

आप 'make_frame' समारोह – Delimitry

+1

से शब्दकोश और उन्हें करने के लिए उपयोग करने के लिए प्रत्येक 'टी' के लिए पूर्वनिर्धारित निर्देशांक और आयाम ले जा सकते हैं के बजाय निर्देशांक आप पहले से ही moviepy की कोशिश की है, तो अपने प्रश्न में कोड अपडेट करें। – Delimitry