نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی

طراحی svg html. SVG: مبانی گرافیک برداری در HTML

این نتیجه گیری از گزارش رئیس هیئت مدیره شرکت باشنفت به مجمع عمومی صاحبان سهام این شرکت که نسخه ای از آن در اختیار سردبیران قرار گرفته است، حاصل می شود.

از این سند برمی‌آید که در نتیجه اکتشافات زمین‌شناسی، در سال ۲۰۱۸، ۸۱ کانسار مولد با ذخیره ۱۹ میلیون تنی کشف شد.

در عین حال، استفاده از اقدامات بسیار مؤثر زمین‌شناسی و فنی و معرفی فناوری‌های مدرن برای افزایش بازیابی نفت، امکان حفظ تولید نفت در میادین بالغ در باشقیریا را پس از نتایج 11 ماهه در سطح سال 2017 فراهم کرد. 15 میلیون تن حجم کل تولید برای مدت زمان مشخص شده بالغ بر 17.3 میلیون تن نفت بوده است.

این گزارش همچنین خاطرنشان می کند که ایجاد یک زنجیره تولید واحد با مجتمع معدنی و فرآوری روس نفت، کارایی پالایشگاه های اوفا را افزایش داده و منجر به کاهش هزینه های عملیاتی و لجستیکی شده است. به ویژه، تولید بنزین یورو 6 تسلط یافته و تولید صنعتی قیر جاده مطابق با GOST جدید آغاز شده است.

حجم خرده‌فروشی در جایگاه‌های باشنفت در ۱۱ ماهه سال ۲۰۱۸ با ۱۳.۲ درصد افزایش نسبت به مدت مشابه سال قبل به ۱.۷ میلیون تن رسید.

برای اجرای استراتژی در حوزه پتروشیمی، تولید پتروشیمی در حال نوسازی است. بدین ترتیب در اردیبهشت 1397 واحد جدیدی برای تولید کومین، ماده اولیه تولید رنگ، حلال، پلیمرهای مختلف مورد استفاده در صنعت خودروسازی، پزشکی و فارماکولوژی در Ufaorgsintez به بهره برداری رسید. در ردیف بعدی بازسازی مجتمع تولید آروماتیک در Ufaneftekhim، ساخت واحدهای جدید تولید الفین در Ufaorgsintez است.

شاخص تلفیقی سود عملیاتی 9 ماهه سال 2018 نسبت به مدت مشابه در سال 2017 22.6 درصد افزایش یافته و به 135.5 میلیارد روبل رسیده است. سود خالص باشنفت به 74.6 میلیارد روبل رسید که 73.5 درصد بیشتر از مدت مشابه سال گذشته است.

در سه ماهه سوم، باشنفت سود سهامداران را که در مجمع سالانه در ژوئن 2018 به مبلغ 28.2 میلیارد روبل اعلام شد پرداخت کرد و کل مبلغ سود سهام پرداخت شده از ابتدای سال به 43 میلیارد روبل رسید.

در همان زمان، سطح بدهی خالص شرکت کاهش یافت و تا 30 سپتامبر 2018 به 40.1 میلیارد روبل رسید (در همان تاریخ در سال 2017، این رقم 104.7 میلیارد روبل بود).

در همان زمان، در طول دوره گزارش، کسر مالیات به بودجه باشقورتستان، با در نظر گرفتن یک بار پرداخت مالیات بر درآمد، 1.5 برابر نسبت به مدت مشابه سال گذشته افزایش یافت و به 50.5 میلیارد روبل رسید.

اکثر صفحات وب حاوی گرافیک هستند. به شما امکان می دهد اطلاعات را به صورت رنگارنگ و بصری ارائه دهید. در بسیاری از موارد نشان دادن یک تصویر بهتر از ارائه توضیحات متنی طولانی است.
دو روش برای قرار دادن گرافیک در یک صفحه وجود دارد:

  • درج تصاویر فردی؛
  • پر کردن پس زمینه با یک تصویر

در هر صورت تصویر گرافیکی از فایل گرفته شده است.

درج یک تصویر گرافیکی از یک فایل فرمت گرافیکی در یک صفحه با استفاده از تگ انجام می شود (از انگلیسی، image - image) آدرس فایل را به عنوان آرگومان ویژگی SRC مشخص می کند:

آدرس فایل گرافیکی یا URL یا نام فایل است که به صورت اختیاری دارای یک مسیر است. به عنوان مثال، برای نمایش یک فایل گرافیکی logotip.jpg، تگ را بنویسید

برای افزایش نرخ بیت یک گرافیک در یک برچسب می توانید از ویژگی (پارامتر اضافی) LOWSRC استفاده کنید که آدرس فایل گرافیکی را به عنوان آرگومان می گیرد. می توانید دو فایل گرافیکی ایجاد کنید: یکی (مثلا logotip.jpg) حاوی یک تصویر با وضوح بالا و دیگری (مثلا logotip.gif) حاوی یک تصویر با وضوح پایین است. سپس برچسب

به مرورگر می‌گوید ابتدا فایل logotip.gif را دانلود کرده و پس از دریافت آن را با فایل logotip.jpg جایگزین کند.
یکی دیگر از راه‌های افزایش سرعت بارگذاری گرافیک، تنظیم ابعاد ناحیه مستطیلی که تصویر گرافیکی در آن قرار می‌گیرد، با استفاده از ویژگی‌های WIDTH (عرض) و HEIGHT (ارتفاع) اندازه‌گیری شده در پیکسل است. اگر این ویژگی‌ها را مشخص کنید، مرورگر ابتدا فضا را برای گرافیک‌ها اختصاص می‌دهد، طرح‌بندی سند را آماده می‌کند، متن را نمایش می‌دهد و تنها پس از آن گرافیک را بارگذاری می‌کند. توجه داشته باشید که مرورگر تصویر را فشرده یا کشیده تا در قاب اندازه مشخص شده قرار بگیرد. نمونه ای از تعیین ابعاد تصویر:

گرافیک معمولاً همراه با متن استفاده می شود، بنابراین وظیفه تراز کردن متن و تصویر گرافیکی مطرح می شود. این مشکل با استفاده از ویژگی حل می شود تراز کردنبرچسب زدن با استفاده از استدلال های مختلف برای مثال، ممکن است بخواهیم متنی به سمت راست یا چپ دور یک تصویر بپیچد. معمولاً تصویر نزدیک به متن تعبیه شده است که می تواند زشت باشد. برای جلوگیری از این امر، می توانید حاشیه های خالی را در اطراف تصویر قرار دهید. فیلدها با استفاده از ویژگی ها ایجاد می شوند VSPACEبرای حاشیه های بالا و پایین و HSPACEبرای حاشیه های جانبی در یک برچسب . آرگومان های این ویژگی ها به عنوان اعدادی مشخص می شوند که اندازه حاشیه ها را بر حسب پیکسل مشخص می کنند. برای لغو بسته بندی متن در اطراف گرافیک، از برچسب استفاده کنید
.
تگ زیر بسته بندی گرافیک ها را از فایل logotip.jpg به سمت راست تنظیم می کند (تصویر در سمت چپ متن خواهد بود):

اگر می خواهید تصویر را در سمت راست متن قرار دهید، به ویژگی نیاز دارید تراز کردنیک آرگومان اختصاص دهید درست:

برای تنظیم حاشیه های اطراف تصویر، باید یک تگ view بنویسید:

در اینجا اعداد 20 و 10 اندازه حاشیه ها را مشخص می کنند.
نمونه ای از به اشتراک گذاری گرافیک و متون را در نظر بگیرید. Notepad (ویرایشگر متن Notepad) ویندوز را باز کنید. با استفاده از تگ هایی که در بالا توضیح داده شد، کد HTML را در آن بنویسید. در زیر برنامه ای است که مقداری متن و گرافیک را خروجی می دهد. به عنوان یک فایل گرافیکی می توانید از هر کدام از فایل هایی که دارید استفاده کنید. در اینجا از فایل logotip.gif استفاده شده است.


تمرین 1



<Н1>متن در اطراف گرافیک در سمت راست قرار می گیرد
این نمونه ای از ترکیب متن و گرافیک است.
متن برنامه HTML را می توان در هر ویرایشگر متنی نوشت. این از تگ های نشانه گذاری متن استفاده می کند.

این متن از یک پاراگراف جدید نمایش داده می شود. برای این کار از یک تگ مخصوص استفاده کردیم.


سعی کنید اندازه پنجره مرورگر خود را تغییر دهید. به نحوه تغییر موقعیت متن توجه کنید.

برنج. 657. متن دور تصویر در سمت راست قرار می گیرد

فرصت های گسترده ای برای موقعیت یابی دقیق تصاویر (و همچنین سایر عناصر) در صفحه توسط جداولو سبک ها. این عناصر HTML بعداً مورد بحث قرار خواهند گرفت. برای مثال می توانید جدولی را بدون قاب های قابل مشاهده تعریف کنید و تصاویر، متن ها و سایر عناصر را در خانه های این جدول قرار دهید.

SVG (Scalable Vector Graphics) یک استاندارد گرافیک برداری است که توسط کنسرسیوم W3C توسعه یافته است.

SVG یک زبان نشانه گذاری برای توصیف برنامه ها و تصاویر گرافیکی دو بعدی است و زیرمجموعه ای از زبان نشانه گذاری XML توسعه پذیر است. این شامل تعدادی اسکریپت گرافیکی مرتبط نیز می شود.

SVG توسط تمام مرورگرهای مدرن برای رایانه های شخصی و تلفن های همراه پشتیبانی می شود. برخی از ویژگی ها مانند انیمیشن های SMIL و فونت های SVG چندان مورد استفاده قرار نمی گیرند.

آخرین نسخه از مشخصات کامل SVG 1.1 است.

SVG 2 در دست توسعه است. این توابع جدید و با استفاده آسان برای SVG اضافه می کند و در حال کار بر روی یکپارچه سازی دقیق تر با HTML، CSS و DOM است.

مزایای SVG

  • گرافیک های SVG با استفاده از فرمول های ریاضی ایجاد می شوند که با تغییر اندازه تصویر قابل تنظیم هستند. بنابراین، مقیاس تصاویر برداری بهتر از تصاویر شطرنجی است.
  • اندازه یک تصویر برداری معمولاً کوچکتر از تصاویر قابل مقایسه در فرمت های JPEG، GIF یا PNG است.
  • گرافیک های SVG دارای فرمت متنی هستند که می توان آن را در دفترچه یادداشت ویرایش کرد و در ویرایشگرهای گرافیکی برداری Adobe Illustrator و CorelDRAW ترسیم کرد.
  • اسکریپت ها و انیمیشن ها در SVG به شما امکان می دهند گرافیک های پویا و تعاملی ایجاد کنید.
  • متن در یک گرافیک SVG متن است، نه یک تصویر، به همین دلیل است که توسط موتورهای جستجو نمایه می شود.
  • می توانید چندین لینک به یک تصویر SVG اضافه کنید.
  • می‌توانید برگه‌های سبک CSS خارجی را به فرمت SVG، سبک‌های سراسری داخل ظرف متصل کنیدیا با استفاده از ویژگی style در تگ های شکل و مسیر، استایل های داخلی را اضافه کنید.

درج SVG در یک صفحه وب

یک تصویر SVG را می توان به روش های مختلفی در یک صفحه وب قرار داد. اولین مورد درج ساده کد SVG در صفحه است (با یک تصویر بزرگ، کد HTML صفحه بزرگ و خواندن آن دشوار می شود). با روش های دیگر، ابتدا باید کد SVG را در یک فایل با پسوند ذخیره کنید .svg.

بنابراین در اینجا راه هایی برای درج یک تصویر SVG در یک صفحه وب وجود دارد:

  • قرار دادن مستقیم کد در یک سند HTML در یک ظرف ... ;
  • استفاده از یک فایل SVG به عنوان تصویر پس زمینه؛
  • اتصال یک فایل SVG به یک سند HTML با استفاده از برچسب ها img, جاسازی کنید, هدف - شیو iframe;
  • اتصال یک فایل SVG به یک سند PHP با استفاده از یک تابع عبارتند از.
1. درج مستقیم کد SVG در یک سند وب
2. استفاده از یک فایل SVG به عنوان تصویر پس زمینه
3. پیوست کردن یک فایل SVG با استفاده از تگ img
4. پیوست کردن یک فایل SVG با استفاده از تگ embed
5. پیوست کردن یک فایل SVG با استفاده از تگ شی
6. پیوست کردن یک فایل SVG با استفاده از تگ iframe
7. شامل یک فایل SVG با استفاده از تابع include

دستگاه مختصات

ابعاد و مختصات را می توان در واحدهای مختلف (px، pt، pc، cm، mm، em، in) مشخص کرد. اگر واحدها مشخص نشده باشند، پیکسل هستند.

مبدا مختصات گوشه سمت چپ بالای صفحه است، یعنی.

عناصر اصلی SVG

مثال stroke-dasharray خط تیره و فاصله متناوب در یک خط چین مثال stroke-dashoffset مثال تغییر خط نقطه‌ای پر کردن رنگ پر (هیچ - بدون پر) پر کردن شفافیت پر کردن شفافیت (0 تا 1) قانون پر کردن قانون پر کردن
مقادیر ویژگی ممکن: سبک سبک عنصر کلاس کلاس عنصر

خط مستقیم

تنظیم با برچسب .

ویژگی ها را تگ کنید
مثال

نتیجه:

خط شکسته

تنظیم با برچسب .

ویژگی برچسب
مثال

نتیجه:

چند ضلعی

تنظیم با برچسب . همیشه شکل‌های بسته را ترسیم می‌کند، به‌طور خودکار یک خط از انتهای آخرین بخش تا ابتدای قسمت اول ترسیم می‌کند.

ویژگی برچسب
مثال

نتیجه:

مستطیل

تنظیم با برچسب .

ویژگی ها را تگ کنید
مثال

نتیجه:

یک دایره

تنظیم با برچسب .

ویژگی ها را تگ کنید
مثال

نتیجه:

مسیر پیچیده

تنظیم با برچسب . همه کاره ترین عناصر SVG است. به شما امکان می دهد شکل های سفارشی ایجاد کنید. شکل شکل با ویژگی ها تنظیم می شود د، که مقدار آن مجموعه ای از دستورات خاص است. این دستورات می توانند با حروف بزرگ یا کوچک باشند. حروف بزرگ نشان می دهد که موقعیت مطلق اعمال شده است، در حالی که حروف کوچک نشان دهنده موقعیت نسبی است.

دستوراتی که مسیر و جهت یک خط منحنی را مشخص می کند
م، م نقطه شروع
Mx، y
Ll بخش خط
Lx، y
H، h خط افقی
hx، yیا hx
V، v خط عمودی
Vx، yیا vy
الف، الف قوس بیضی
Arx، ry محور x-چرخش بزرگ-قوس-پرچم، Sweep-flag x,y
rx، ryشعاع های قوس بیضی هستند.
چرخش محور xزاویه چرخش قوس نسبت به محور X است.
پرچم قوس بزرگ- اگر (=1)، قسمت بزرگتری از قوس ساخته شده است، اگر (=0) - یک قسمت کوچکتر.
پرچم جارو- اگر (=1)، پس قوس در جهت عقربه های ساعت ساخته می شود، اگر (=0) - در خلاف جهت عقربه های ساعت.
x، yمختصات نقطه انتهایی کمان هستند.
ج، ج منحنی مکعب بزیر
Cx1، y1 x2، y2 x، y
x1، y1- مختصات اولین نقطه کنترل؛
x2، y2
x، y
اس، اس منحنی مکعبی صاف
Sx2، y2 x، y
x2، y2- مختصات نقطه کنترل دوم؛
x، y
اولین نقطه کنترل تصویر آینه ای از نقطه کنترل دوم است.
س، ق منحنی بزیر درجه دوم
Qx1، y1x، y
x1، y1- مختصات نقطه کنترل؛
x، yمختصات نقطه پایانی منحنی هستند.
تی، تی منحنی بزیه درجه دوم صاف
Qx1، y1x، y
x، yمختصات نقطه پایانی منحنی هستند.
نقطه شکست این دستور یک تصویر آینه ای از نقطه شکست دستور قبلی است.
Z، z بستن راه
مثال

نتیجه:



.

برچسبی برای قرار دادن یک تصویر در یک مکان خاص در صفحه وجود دارد. . این تگ دارای یک پارامتر مورد نیاز است: SRC=""، و چندین پارامتر اختیاری. پارامتر SRC="" به مرورگر می گوید که کجا به دنبال گرافیک بگردد و باید URL منبعی را که فایل گرافیکی در آن قرار دارد را به عنوان مقدار داشته باشد. در ساده ترین حالت، این فایل در دایرکتوری ریشه یا در پوشه IMG سایت شما قرار می گیرد. پارامترهای اختیاری:

پارامتر ALT="" حاوی یک کتیبه به عنوان مقدار است که محتوای تصویر را برای بازدیدکنندگانی که مرورگرهایشان از گرافیک پشتیبانی نمی کند یا در حالت گرافیک غیرفعال کار می کند، می گوید. هنگامی که ماوس را روی تصویر می برید، همان کتیبه ظاهر می شود.

پارامترهای WIDTH="" HEIGHT="" به عنوان مقادیر ابعاد تصویر را بر حسب عرض و ارتفاع بر حسب پیکسل دارند. مطلوب است که این پارامترها را در کد صفحه مشخص کنید تا مرورگر از قبل فضایی را برای تصویر باقی بگذارد، سپس، هنگام بارگیری، صفحه کمتر "انقباض" می کند. علاوه بر این، از این پارامترها می توان برای تنظیم اندازه تصویر در پنجره مرورگر استفاده کرد.

پارامتر BORDER="" یک حاشیه در اطراف تصویر ترسیم می کند. مقدار عددی است که عرض حاشیه را بر حسب پیکسل نشان می دهد.

پارامتر ALIGN= موقعیت تصویر را در صفحه تعیین می کند و می تواند مقادیر TOP را بگیرد - حاشیه بالای تصویر را با بالاترین عنصر خط فعلی تراز می کند، TEXTTOP - حاشیه بالای تصویر را با بالاترین تراز می کند. عنصر متن خط فعلی، MIDDLE - وسط تصویر را با خط پایه خط فعلی تراز می کند، ABSMIDDLE - وسط تصویر را با وسط خط فعلی تراز می کند. BASELINE یا BOTTOM - حاشیه پایین تصویر را با خط پایه خط فعلی تراز می کند، ABSBOTTOM - مرز پایین تصویر را با مرز پایین خط فعلی تراز می کند، HSPACE= - تورفتگی افقی را تعیین می کند، VSPACE= - تعیین می کند تورفتگی عمودی

نحو برچسب:

تیکر

خط در حال اجرا توسط تگ تنظیم می شود .

ویژگی های این تگ bgcolor - رنگ پس زمینه خط اسکرول، ارتفاع - ارتفاع خط، عرض - عرض خط است.

جهت - جهت حرکت نشانگر را تنظیم می کند - جهت = "چپ" (راست، بالا، پایین) - حرکت به سمت چپ (راست، بالا، پایین).

رفتار - رفتار رشته - رفتار = اسکرول (اسلاید، متناوب). اسکرول - پیمایش عادی (شما نمی توانید آن را تجویز کنید، پیش فرض است)



اسلاید - پیمایش با توقف، خط به لبه می رود و متوقف می شود. اگر پارامتر حلقه به طور همزمان با behavor="slide" استفاده شود، خط به تعداد دفعات تنظیم شده پیمایش می کند و در لبه متوقف می شود. جایگزین - خط از لبه به لبه حرکت می کند.
Scrollamount - سرعت خط، scrollamount="1". می تواند مقادیری از 1 تا 10 بگیرد. 1 کندترین حرکت است، 10 سریعترین است.

نحو برچسب: متن

مرورگرهای وب مدرن می توانند فایل های ویدئویی و صوتی را در فرمت های مختلف پخش کنند. برای انجام این کار، آنها از پخش کننده های داخلی (پلاگین ها، کنترل های ActiveX) یا برنامه های پخش کننده خارجی استفاده می کنند. می توانید صدا یا ویدیو را با استفاده از تگ های مختلف در یک سند HTML وارد کنید:

- برای درج صدای پس زمینه.

- برای قرار دادن ویدئو در فرمت AVI.

- برای قرار دادن فایل های صوتی و تصویری؛

- برای قرار دادن فایل های صوتی و تصویری.

هنگام تصمیم گیری برای جاسازی صدا و/یا ویدیو در یک سند HTML، به خاطر داشته باشید که فایل های مربوطه بسیار بزرگ هستند. محبوب ترین ها در وب اکنون فرمت های MP3، WMA، AIFF، AU، RealAudio (ra و ram)، MP4، MIDI و MPEG، MOV هستند. فرمت صوتی WAV و فرمت ویدئویی AVI به ندرت در اینترنت استفاده می شود.

(مقاله اجمالی پس از کنفرانس توسعه نرم افزار در یکاترینبورگ و سایر ارائه ها. نسخه تصویری گزارش در یکاترینبورگtechdays.ru را ببینید )

HTML5 Canvas و SVG چیست؟

بوم HTML5

- این عنصر یک بوم برای رندر گرافیک بیت مپ است. در واقع، این یک بلوک خالی از ابعاد داده شده است که می توانید با استفاده از API های مخصوص جاوا اسکریپت روی آن ترسیم کنید.

API شامل 45 روش خاص و 21 ویژگی است که برای نمایش اولیه‌های گرافیکی، تنظیم سبک‌ها، تبدیل‌ها، دسترسی به پیکسل‌ها، تصاویر پروژه و ویدئوها استفاده می‌شود.

خودم عنصر به طور مستقیم در مشخصات HTML5 تعریف شده است. API برای آن در یک سند جداگانه - HTML Canvas 2D Context توضیح داده شده است.

SVG

موسیقی می تواند سرگرم کننده باشد

یک بازی تجسمی زیبای موسیقی (http://musiccanbefun.edankwan.com/).

نمونه های طرح SVG

نمودار اسکلت انسان، جدول تناوبی عناصر شیمیایی و سیستم تنفسی (http://ie.microsoft.com/testdrive/Graphics/RealWorldDataAndDiagrams/Default.xhtml).

نقشه های Yandex

یک مثال واقعی تر، استفاده از SVG هنگام رندر مسیرها (اگر مرورگر از آن پشتیبانی می کند) است. همچنین به گفتگوی "نقشه ها و SVG" از کمپ HTML5 ما مراجعه کنید.

نمونه های بیشتر:

  • زیبایی وب http://www.beautyofheweb.com/ - سایت های واقعی از دنیای واقعی
  • Dev: unplugged http://contest.beautyoftheweb.com/ - پروژه های شرکت کننده در مسابقه برنامه کاربردی HTML5

تفاوت بین Canvas و SVG

در سناریوهای مختلف، Canvas یا SVG ممکن است برای رندر پویا گرافیک مناسب‌تر باشند - ما در پایان به این موضوع باز خواهیم گشت. در ضمن، بیایید بر روی تفاوت های کلیدی بین یکی و دیگری تمرکز کنیم:

بوم SVG
فرمت شطرنجی بردار
مقیاس بندی
دسترسی داشته باشید

دسترسی به پیکسل (RGBA)

دسترسی به عنصر فردی (DOM)

شاخص ناپذیری و دسترسی

فقط شطرنجی نهایی قابل مشاهده است (شما نمی توانید اشکال، متن و غیره را انتخاب کنید) - برای دسترسی بد است

می توانید ساختار را ببینید (به عنوان مثال، کل متن را بیرون بکشید)

سبک سازی

هنگام رندر کردن از طریق API، سبک‌های بصری تنظیم می‌شوند

سبک‌های بصری با ویژگی‌ها تنظیم می‌شوند، می‌توانید CSS را اضافه کنید

برنامه نويسي

JS API برای کار با primitives

DOM برای کار با عناصر

به روز رسانی

برای به روز رسانی - ترسیم مجدد یا کاملاً دوباره ترسیم کنید

امکان تغییر عناصر فردی وجود دارد

مناسبت ها

هیچ راه آسانی برای مدیریت رویدادهای ماوس وجود ندارد. اشیاء زیر مکان نما باید به صورت دستی تعریف شوند.

رویدادهای ماوس از طریق DOM به راحتی آویزان می شوند، به طور خودکار پردازش می شوند.

یکپارچه سازی کد

کد JS جدا از Canvas

می توانید JS را داخل آن قرار دهید

این تفاوت ها باید هنگام استفاده از یک فناوری خاص برای تجسم داده ها در نظر گرفته شوند. به عنوان مثال، رسم نمودار یک تابع با Canvas آسان تر است، در حالی که نمایش نکات ابزار (با تعریف یک شی در زیر نشانگر ماوس) با SVG آسان تر است.

با این حال، در عمل، تعدادی کتابخانه آماده برای تجسم داده ها وجود دارد که تا حدی این تفاوت ها را جبران می کند.

من به اصول کار با هر یک از فناوری ها نمی پردازم، به عنوان مقدمه، گزارش Vadim Makeev (Opera) از کمپ HTML5 "Dynamic Graphics: Canvas and SVG" را توصیه می کنم.

همچنین گزارش های MIX 2011 را ببینید:

پردازش تصویر با بوم

یکی از ویژگی های قابل توجه Canvas این است که این فناوری دسترسی پیکسل به پیکسل به داده های نمایش داده شده را فراهم می کند و امکان نمایش عناصر گرافیکی مختلف از جمله ویدئو را بر روی بوم می دهد.

یک مثال خوب از جایی که این مورد نیاز است، در یک کار پردازش/تحلیل تصویر است.

Processing.js دو رویکرد برای توصیف تجسم ارائه می دهد: کد میانی که توسط خود کتابخانه بیشتر تجزیه می شود (در یک فایل جداگانه یا داخل صفحه) و کد جاوا اسکریپت صریح.

به عنوان مثال، برای رسم فراکتال از مجموعه Mandelbrot، می توانید از گزینه نشان داده شده در صفحه با مثال مربوطه یا کد جاوا اسکریپت زیر استفاده کنید:

var xmin = -2.5; واریمین = -2; var wh = 4; تابع sketchProc(پردازش) ( processing.setup = function () ( processing.size(200, 200)؛ processing.noLoop();؛ processing.draw = function () ( processing.loadPixels(); var maxiterations = 200; var xmax = xmin + wh؛ var ymax = ymin + wh؛ var dx = (xmax - xmin) / (processing.width)؛ var dy = (ymax - ymin) / (processing.height)؛ var y = ymin؛ برای (var j = 0؛ j< processing.height; j++) { var x = xmin; for (var i = 0; i < processing.width; i++) { var a = x; var b = y; var n = 0; while (n < maxiterations) { var aa = a * a; var bb = b * b; var twoab = 2.0 * a * b; a = aa - bb + x; b = twoab + y; if (aa + bb >16.0) (شکست ; ) n++; ) if (n == maxiterations) processing.pixels.setPixel(i+j*processing.width, 0); else processing.pixels.setPixel(i+j*processing.width, processing.color(n*16 % 255)); x += dx; ) y += dy; ) processing.updatePixels(); ) ) var canvas = document.getElementById("myCanvas" ); var p = پردازش جدید (بوم، sketchProc)؛

می توانید خودتان آن را در اینجا امتحان کنید: http://silverbook.ru/projects/html5datavisualization/demo3-processingjs.htm (کد را کپی کنید، آن را در کنسول قرار دهید و اجرا کنید).

JavaScript InfoVis Toolkit (JIT)

برای نمایش داده ها، JIT مقادیر خام را به عنوان JSON می پذیرد:

var json = ( "label" : ["label" , "label B" , "label C" , "label D" ], "values" : [ ( "label" : "date A" , "values" : ) , ( "برچسب" : "تاریخ B" , "مقدار" : ), ( "برچسب" : "تاریخ E" , "مقدار" : ), ( "برچسب" : "تاریخ F" , "مقدار" : ), ( "label" : "date D" , "values" : ), ( "label" : "date C" , "values" : )] ); var pieChart = new $jit.PieChart(( injectInto: "infovis" , animate: true , offset: 30, sliceOffset: 0, labelOffset: 20, type: "stacked:gradient" , showLabels:true , resizeLabels: 7, Label: (نوع: "بومی"، اندازه: 20، خانواده: "Arial"، رنگ: "سفید")، نکات: (فعال: درست، onShow: تابع (نکته، عنصر) ( tip.innerHTML = " "+ elem.name +": " + elem.value; ) ) ));

کافی است نقاشی را فراخوانی کنید:

PieChart.loadJSON(json);

jQuery Sparklines

تجسم نقشه با SVG

بیایید به SVG برویم و با یک مثال ساده شروع کنیم. تصور کنید که باید مقداری داده را روی نقشه مناطق نمایش دهید، ساده ترین راه برای انجام این کار چیست؟

اگر یک نقشه آماده به شکل SVG دارید (من نقشه روسیه را از سایت ویکی پدیا گرفتم)، پس این کار بسیار ساده انجام می شود - کافی است که هر منطقه شناسه منحصر به فرد خود را در سند SVG داشته باشد، سپس نقشه را به صورت svg درون خطی وارد می کنیم و آن را با یک کد ساده به رنگ مناسب رنگ می کنیم:

var SverdlovskOblast = document.getElementById("SverdlovskOblast" ); SverdlovskOblast.style.fill = "#fe3300" ;

اگر همین کار را در یک حلقه انجام دهید، می توانید نه تنها منطقه، بلکه کل منطقه یا حتی کل کشور را رنگ آمیزی کنید:

var data = [(id: "KurganOblast" , value: 30), (id: "SverdlovskOblast" , value: 200), (id: "TyumenOblast" , value: 75), (id: "KhantiaMansia" , value: 100 ), (id: "YamaloNenetsAutDistrict" , value: 20), (id: "ChelyabinskOblast" , value: 150)]; برای (var i = 0; i< data.length; i++) { var item = data[i]; var region = document.getElementById(item.id); region.style.fill = RGBtoHex(item.value, 0, 0); }

کتابخانه هایی برای تجسم داده ها با SVG

همانطور که گفتم، هر دو Canvas و SVG برای حل کار سنتی تجسم داده های عددی در قالب نمودار و نمودار مناسب هستند. در هر دو مورد، انجام این کار با کتابخانه های مناسب نسبتاً آسان است.

ما قبلاً به نمونه های Canvas نگاه کرده ایم، اکنون به چندین کتابخانه برای کار با SVG نگاه می کنیم. (این نیز یک لیست جامع نیست، بلکه راه حل هایی با کیفیت بالا و محبوب است.)

رافائل

برای اضافه کردن یک نمودار دایره ای ساده، کد زیر کافی است:

var r = Raphael("نمودار" , 640, 480); var pie = r.g.piechart(320, 240, 100, );

با چند عملیات اضافی، می توانید یک افسانه، شرح نمودار و نکات ابزار تعاملی اضافه کنید:

var r = Raphael("نمودار" , 640, 480); r.g.txtattr.font = "12px "Fontin Sans", Fontin-Sans, sans-serif"; r.g.text(320, 100, "Interactive Pie Chart" ).attr(("font-size" : 20)); var pie = r.g.piechart(320, 240, 100, ,
(افسانه: ["%%.%% – کاربران سازمانی" , "کاربران اینترنت اکسپلورر" ], legendpos: "west" ,
href: ["http://raphaeljs.com"، http://g.raphaeljs.com]});
pie.hover(function () ( this .sector.stop(); this .sector.scale(1.1, 1.1, this .cx, this .cy); if (this .label) ( this .label.stop(); this .label.scale(1.5); this .label.attr(("font-weight" : 800)); ) ), function () ( this .sector.animate((scale: ), 500, "bounce" ) ؛ if (this .label) ( this .label.animate((scale: 1), 500, "bounce" ); this .label.attr(("font-weight" : 400)); ) ));

به همین ترتیب، می توانید انواع دیگر نمودارها را با استفاده از روش های مناسب نمایش دهید. نمونه ها را مستقیماً در سایت افزونه http://g.raphaeljs.com/ ببینید

HighchartsJS

API کتابخانه، تولید نمودار از داده‌ها را در JSON بسیار آسان می‌کند:

var chart1 = new Highcharts.Chart(( نمودار: ( renderTo: "charts" , defaultSeriesType: "bar" ), title: ( text: "Fruit Consumption" ), xAxis: ( دسته بندی: ["سیب" , "موز" , "پرتقال" ] ), yAxis: ( عنوان: ( متن: "میوه خورده شده" ) ), سری: [( name: "Jane" , data: ), ( name: "John" , data: )] ));

با یک اسکریپت کمی پیچیده تر، می توانید جزئیات بیشتری را مشخص کنید، به عنوان مثال، نمایش یک افسانه، راه اندازی راهنمای ابزار:

var chart = new Highcharts.Chart(( نمودار: ( renderTo: "charts" , defaultSeriesType: "area" , spacingBottom: 30 ), عنوان: ( متن: "مصرف میوه *" ), زیرنویس: ( متن: "* مصرف موز جین ناشناخته است", floating: true , align: "right" , verticalAlign: "bottom" , y: 15 ), legend: ( layout: "vertical" , align: "left" , verticalAlign: "top" , x: 150, y: 100 , شناور: true , borderWidth: 1, backgroundColor: "#FFFFFF" ), xAxis: ( دسته بندی: ["سیب" , "گلابی" , "پرتقال" , "موز" , "انگور" , "آلو" , "توت فرنگی" , "Raspberries" ] ), yAxis: ( title: ( text: "Y-Axis" ), labels: ( formatter: function () ( return this .value; ) ) ), tooltip: ( formatter: function () ( return " "+this.series.name+"
" + this .x +": " + this .y; ) ), plotOptions: ( area: (fillOpacity: 0.5 ) ), series: [( name: "John" , data: ), ( name: "Jane" , داده ها: )] ))؛

در صورت لزوم، می توانید سبک های پیش فرض را با سبک های خود جایگزین کنید.

چه چیزی را انتخاب کنیم: بوم یا SVG؟

همانطور که از مثال های بالا می بینید، هر دو فناوری اغلب برای کارهای تجسم داده ها مناسب هستند. بسیاری از کارها به روشی مشابه انجام می شود. در مواردی که خروجی پیکسل به پیکسل مورد نیاز است، Canvas بدیهی است که مناسب تر است. در جایی که نمودار به اشیاء جداگانه تقسیم می شود که باید تعاملی باشند، SVG مناسب تر است.

بوم بهتر است
  • ویرایش گرافیک بیت مپ
  • اعمال جلوه ها بر روی گرافیک/ویدئو
  • تولید گرافیک شطرنجی (تجسم داده ها، فراکتال ها، نمودارهای تابع)
  • تجزیه و تحلیل تصویر
  • گرافیک بازی (اسپریت، پس زمینه و غیره)
SVG بهتره
  • رابط های مقیاس پذیر
  • رابط های تعاملی
  • نمودارها، طرح ها
  • ویرایش تصویر برداری

در شکل گرافیکی، می توان آن را به صورت زیر نشان داد:

در نهایت، یکی دیگر از برش های مهم که در هنگام انتخاب یک فناوری نیز باید در نظر گرفته شود، ارائه عملکرد هنگام استفاده از Canvas و SVG است:

در عمل، بوم با یک منطقه کوچک ترسیمی و تعداد زیادی اشیاء بهتر کار می کند، در SVG زمانی که نیاز به مقیاس یا نمایش در یک صفحه بزرگ دارید و اشیاء زیادی در یک زمان نمایش داده نمی شوند، بهتر است.

برترین مقالات مرتبط