هذه حزمة R لتحويل الرسومات R إلى Flash File (تنسيق SWF). يمكن إجراء التحويل بطريقتين مختلفتين:
plot() lines() . الاتفاقية هي أنه في كل مرة تتصل فيها بوظيفة التخطيط عالية المستوى ، على سبيل المثال plot() ، سيقوم الفيلم بإنشاء إطار جديد ورسم الأشكال التالية في هذا الإطار. وبهذه الطريقة ، يمكنك إنشاء بعض الرسوم المتحركة عن طريق استدعاء سلسلة من وظائف plot() .svg2swf() للتحويل من SVG إلى SWF ، و image2swf() لتحويل صور PNG و JPG إلى ملف SWF واحد. يعتمد R2SWF على المكتبات التالية:
يتم تضمين رمز المصدر لـ libming في R2SWF ، وتحتاج إلى تثبيت الثلاثة الأخرى بنفسك.
بالنسبة لمستخدمي Debian/Ubuntu ، فإن الأمر لتثبيت المكتبات المعال
sudo apt-get install zlib1g-dev libpng12-dev libfreetype6-dev
للأنظمة المستندة إلى RPM (مثل Fedora) ، حاول التشغيل
sudo yum install zlib-devel libpng-devel freetype-devel
في المثال الأول ، نقوم أولاً بإنشاء 20 صورة باستخدام وظيفة png() ، ثم تحويلها إلى ملف SWF واحد R2SWF-ex1.swf .
# # Creating png files
png( " image-png-%03d.png " , 480 , 300 )
x = seq( 0 , 2 * pi , length.out = 20 )
cols = rainbow( 20 )
for ( i in 1 : 20 ) plot( x [ i ], sin( x [ i ]), xlim = c( 0 , 2 * pi ), ylim = c( - 1 , 1 ),
col = cols [ i ], pch = 16 , cex = 2 , main = " PNG => SWF " )
dev.off()
# # Obtain the filenames
pngfiles = sprintf( " image-png-%03d.png " , 1 : 20 )
# # Convert to SWF
image2swf( pngfiles , " R2SWF-ex1.swf " , interval = 0.3 )
يتشابه استخدام svg2swf إلى حد كبير ، باستثناء أن الرسوم المتحركة للإخراج تحتوي على رسومات متجه.
# # Do similar things as above
svg( " image-svg-%03d.svg " , 8 , 5 )
x = seq( 0 , 2 * pi , length.out = 20 )
cols = rainbow( 20 )
for ( i in 1 : 20 ) plot( x [ i ], sin( x [ i ]), xlim = c( 0 , 2 * pi ), ylim = c( - 1 , 1 ),
col = cols [ i ], pch = 16 , cex = 2 , main = " SVG => SWF " )
dev.off()
svgfiles = sprintf( " image-svg-%03d.svg " , 1 : 20 )
# # Convert to SWF
svg2swf( svgfiles , " R2SWF-ex2.swf " , interval = 0.3 )
يوضح المثال الثالث كيفية استخدام جهاز SWF لإنشاء (بدلاً من تحويل) ملف SWF مباشرة.
swf( " R2SWF-ex3.swf " )
set.seed( 123 )
x = rnorm( 5 )
y = rnorm( 5 )
for ( i in 1 : 100 ) {
plot( x <- x + 0.1 * rnorm( 5 ), y <- y + 0.1 * rnorm( 5 ),
xlim = c( - 3 , 3 ), ylim = c( - 3 , 3 ), col = " steelblue " ,
pch = 16 , cex = 2 , xlab = " x " , ylab = " y " )
title( " Brownian Motion " )
}
dev.off() بشكل عام ، عند استخدام جهاز SWF ، فإن وظائف التخطيط عالي المستوى (مثل plot() ) ستقدم الفيلم بإطار واحد ، ووظائف المستوى المنخفض ( lines() ، text() ، إلخ) فعالة فقط للإطار الحالي.