मैं d3.js का उपयोग करके कुछ बुनियादी एनिमेशन बना रहा हूं, जैसे कि बार चार्ट एनिमेशन जो डेटा के दो सेट के बीच एक संक्रमण दिखाते हैं। आखिरकार, मैं इस एनीमेशन को एडोब आफ्टरफेक्ट्स में एक बड़े वीडियो के हिस्से के रूप में शामिल करना चाहता हूं। प्रभाव या इलस्ट्रेटर के बाद आयात करने के लिए मैं वेक्टर फ्रेम (एआई या एसवीजी, या यदि आवश्यक हो तो पीएनजी) की एक श्रृंखला के रूप में वेब एनीमेशन निर्यात करना चाहता हूं। मैं यह कैसे कर सकता हूँ? धन्यवाद!एक AfterEffects अनुक्रम बनाने के लिए वेक्टर फ्रेम के लिए d3.js एनीमेशन निर्यात करने के लिए कैसे?
उत्तर
यह वास्तव में d3.js संक्रमणों के तरीके के साथ काफी सरल हो सकता है! चूंकि d3.js सीधे संक्रमण करने के लिए DOM तत्वों को परिवर्तित करता है, इसलिए आप केवल एक दूसरे के प्रत्येक 1/30 वें स्थान पर DOM तत्वों को सहेज सकते हैं। (बजाय सिर्फ उपरोक्त उदाहरण की तरह सांत्वना के लिए उन्हें outputting में)
<html>
<head>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<style>
svg { border:1px solid black; }
</style>
</head>
<body>
<svg id="svg" width="480" height="240" xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black"
stroke-width="2" fill="red" />
</svg><br/>
<button id="b1" type="button">Animate</button>
<script type="text/javascript">
var svg = d3.select("svg");
var b1 = d3.select("#b1");
var duration = 1000;
var nTimes = 30;
var x = new XMLSerializer();
var n = 0;
function outputToConsole() {
console.log(x.serializeToString(document.getElementById("svg")));
if(n++ >= 30)
return;
setTimeout(outputToConsole, 33); // 33 milliseconds is close to 1/30th of a second
}
b1.on("click", function() {
svg.select("circle").transition().duration(duration).attr("cx",150);
outputToConsole();
});
</script>
</body>
</html>
अंतिम चरण डिस्क पर अलग-अलग .svg फाइलों में उन outputted svg तत्वों में से प्रत्येक को बचाने के लिए होगा: यहां एक संपूर्ण उदाहरण है। मैंने अभी तक यह कोशिश नहीं की है, लेकिन शायद कोई FileSaver.js जैसे कुछ का उपयोग कर सकता है। फिर वैकल्पिक रूप से .svg फ़ाइलों को ImageMagick जैसे कुछ का उपयोग करके .png फ़ाइलों में परिवर्तित किया जा सकता है।
नोट ImageMagick हमेशा svg फ़ाइलों को ठीक से परिवर्तित नहीं करता है। [यह पोस्ट] देखें (http://stackoverflow.com/questions/6068751/svg-converting-using-imagemagick-doesnt-apply-a-translation- सही ढंग से) – t2k32316
मैंने ऊपर जवाब लिया और अंतिम चरण जोड़ा, कृपया जांचें मेरे bl.ock बाहर http://bl.ocks.org/sdbernard/afbb899e60902ad42064 यह प्रभाव के बाद 25fps फ्रेम दर के अनुरूप एक सेकंड के प्रत्येक 1/40 वें svg बचाता है –
- 1. कैसे D3.js स्क्रीन/ब्राउज़र आकार के लिए उत्तरदायी में बल लेआउट ग्राफ बनाने के लिए
- 2. d3 js में नक्शा पुनः प्रक्षेपण के लिए सुचारु करने के लिए कैसे
- 3. D3.js, d3.js
- 4. d3.js: अनुवाद करते समय अपने केंद्र के चारों ओर एक एसवीजी घुमाने के लिए कैसे?
- 5. निर्यात करने के लिए पाइप
- 6. एनिमेटेड वेक्टर ड्रॉबल बनाने के लिए टूल्स
- 7. UinavigationController के बिना Segue एनीमेशन क्षैतिज बनाने के लिए कैसे?
- 8. एक वेक्टर को स्ट्रिंग करने के लिए
- 9. एक "slopegraph" d3.js
- 10. एनीमेशन के साथ स्क्रॉल करने के लिए
- 11. कैसे cell.imageview फ्रेम सेट करने के लिए
- 12. कैसे एनीमेशन वक्र स्थापित करने के लिए?
- 13. d3.js: समय के पैमाने
- 14. d3.js ग्राफ आउटपुट?
- 15. D3.js
- 16. कैसे एक सिस्टम बनाने के लिए। Linq.Expressions.Expression पसंद के लिए?
- 17. d3.js बल लेआउट में प्रारंभिक एनीमेशन को नियंत्रित करने
- 18. d3.js
- 19. d3.js v4
- 20. लाइन सेगमेंट के अनुक्रम को चित्रित करने के लिए एनिमेट करने के लिए कैसे करें
- 21. वेक्टर में शब्दों के अनुक्रम को पार्स करने के लिए boost :: spirit का उपयोग कैसे करें?
- 22. d3.js d3.geo.path
- 23. d3.js
- 24. विफलता के बावजूद भविष्य अनुक्रम निष्पादित करने के लिए कैसे?
- 25. d3.js
- 26. d3.js
- 27. d3.js
- 28. d3.js
- 29. आर में एक अलग श्रृंखला के लिए एक वेक्टर मैप करने के लिए कैसे?
- 30. D3.js
अपडेट: मैं इस पर आधारित समाधान पर काम कर रहा हूं [उदाहरण] (http://d3export.cancan.cshl.edu/)। अब तक सब ठीक है। मैं अपने html में setInterval() का उपयोग कर form.submit को बुला रहा हूं, और फिर perl स्क्रिप्ट svg नोड से डेटा के साथ एक फ़ाइल डाउनलोड बनाता है। समस्या यह है कि मुझे प्रति सेकंड 30 फ्रेम/फाइलों की आवश्यकता है, और अब तक ऐसा लगता है कि स्क्रिप्ट उस तेजी से काम नहीं कर सकती है। अगर मैं 1 सेकंड एनीमेशन से 30 फाइलें बनाने की कोशिश करता हूं, तो मैं अपने डाउनलोड फ़ोल्डर में केवल 6 या 7 फाइलों के साथ समाप्त होता हूं। – Carrie
क्या आपने अपने कार्यान्वयन में और अधिक प्रगति की है? मैं एक समान समाधान खोजने की कोशिश कर रहा हूं, लेकिन अब तक के सबसे नज़दीकी समाधानों ने मुझे गतिशील रूप से बनाए गए एसवीजी को बचाने के लिए node.js, PhantomJS, jsdom, आदि जैसे कुछ उपयोग किए हैं, लेकिन मुझे नहीं लगता कि वे संक्रमण के लिए खाते हैं। .. (उदाहरण के लिए [यह समाधान] (http://eng.wealthfront.com/2011/12/converting-dynamic-svg-to-png-with.html))। – t2k32316
हाय, इस पर कोई खबर है? मैं इसे भी लागू करना चाहता हूं। शायद एक साथ हम और अधिक कर सकते हैं। – VividD