گرافیک برداری
نگاشتار برداری یا گرافیک برداری روشی در تولید و ذخیرهٔ فایل‌های تصویری کامپیوتری است که در آن تصویر در قالب مجموعه‌ای از مشخصات هندسی نقاط، خط‌ها، منحنی‌ها و چندضلعی‌ها ذخیره می‌شود. واژهٔ «بردار» در این کاربرد معنایی وسیع‌تر از یک خط راست دارد.
تصاویر تعریف شده به کمک گرافیک برداری، از خطوط و منحنی‌هایی به نام بردار تشکیل شده‌اند که به صورت ریاضی تعریف می‌شوند. اجزای این تصاویر را می‌توان بدون از دست دادن کیفیت و مشکلات ایلیاسینگ (به انگلیسی: Aliasing) به راحتی جا به جا کرد و تغییر اندازه داد. این تصاویر مستقل از رزولوشن هستند و می‌توان آن‌ها را بزرگ و کوچک کرد و در هر رزولوشن بدون از دست دادن جزئیات و وضوح چاپ کرد. از شناخته شده ترین فرمت‌های ذخیرهٔ فایل‌های گرافیک برداری، فرمت SVG است که مخفف Scalable Vector Graphics است. همچنین گرافیک برداری در بسیاری از فرمت همچون EPS و PDF نیز یافت می شوند.
گرافیک برداری در مقابل گرافیک شطرنجی قرار می‌گیرد که در آن تصویر به صورت مجموعه‌ای از پیکسل‌ها ذخیره می‌شود و رنگ هر پیکسل به‌طور جداگانه ذخیره می‌شود. اکثر فرمت‌های رایج فایل‌های تصویری مانند JPG، PNG، GIF بر مبنای گرافیک شطرنجی هستند.
از مزایای دیگر گرافیک های برداری حجم فایل ذخیره سازی است. به عنوان مثال برای ذخیره سازی یک خط به طور یکتا به مختصات نقطه ابتدایی و انتهایی آن نیاز داریم. همچنین رنگ خط و میزان قطر خط نیز از مواردی است که می توان ذخیره کرد. در حالی که در گرافیک شطرنجی برای ذخیره سازی یک خط نیاز به به ذخیره سازی اطلاعات تعداد زیادی پیکسل داریم.
به فرآیند تبدیل یک تصویر از گرافیک برداری به گرافیک شطرنجی شطرنجی سازی (به انگلیسی: Rasterization) گویند.
برعکس به فرآیند تبدیل یک تصویر از گرافیک شطرنجی به گرافیک برداری گویند.
از آنجا که بسیاری از صفحه های نمایش امروزی به صورت ماتریسی از پیکسل ها هستند یکی از وظایف مهم پردازنده های گرفیکی (به انگلیسی: GPU)، شطرنجی سازی سریع تصویر های برداری و نمایش آنها روی صفحه نمایش است.
اولین استفاده از گرافیک برداری به شکل نمایشگر های برداری به سال ۱۹۵۸ در سیستم دفاعی ایالات متحده بر می گردد. همچنین گرافیک برداری به طور جدی در نرم افزار که ایوان سادرلند دانشمند پیشرو حوزه گرافیک کامپیوتر نوشته است، مورد استفاده قرار گرفته است. حائز اهمیت است که نرم افزار Sketchpad به عنوان اولین نرم افزار با رابط کاربر گرفیکی شناخته می شود که طراحی آن بسیار به طراحی شی گرایی امروزی نزدیک است.
سیستم هایی دیگری که از گرافیک کامپیوتری استفاده می کردند عبارت اند از: IBM 2250، Imlac PDS-1، DEC GT40. همچنین کنسول بازی Vectrex از گرافیک برداری برای نمایش تصاویر استفاده می کرد و بسیاری از کنسول های بازی آرکید از مانیتور های برداری برای نمایش صفحه بازی استفاده می کردند.
چاپگر های بسیاری از گرافیک برداری برای چاپ تصویر روی کاغذ استفاده می کردند (مانند پلاتر ها) به طوریکه قلمی به صورت مکرر روی کاغذ حرکت می کند تا خطوط و منحنی های مد نظر را رسم کند.
امروزه فایل های گرافیک برداری که حاوی ترسیمات مهندسی هستند به صورت پیکسلی چاپ میشوند به طوریکه طی عملیاتی ابتدا گرافیک برداری به گرافیک شطرنجی تبدیل می شود و سپس توسط چاپگر، چاپ می شود.
استاندارد ائتلاف وب جهان گستر برای گرافیک برداری فرمت SVG یا نگاره‌سازی برداری مقیاس‌پذیر است. این استاندارد به صورت جامع و کامل مفاهیم و نحوه تولید فایل های گرافیک برداری را مشخص می کند. امروزه بسیاری از مرورگر ها قابلیت رندر فایل ها با فرمت SVG را دارند ولی پیاده سازی کامل این استاندارد به دلیل پیچیدگی آن بسیار محدود است.
در سال های اخیر SVG به فرمتی تبدیل شده که کاملا مستقل از رزولوشن و کیفیت رندر کننده (نمایشگر یا چاپگر) است. فایل های SVG ذاتاً فایل های متنی هستند که نحوه قرارگیری و جزییات ظاهری خطوط راست، منحنی ها، ناحیه ها و ... در آنها توصیف می شوند. به همین دلیل نمایش یا رندر آن با توجه به رزولوشن دستگاه نیازمند شطرنجی سازی است. ویکی پدیا از فرمت SVG برای تصاویری از قبیل نقشه های ساده، لوگو ها، پرچم ها و نشان های ملی، استفاده می کند.
ورژنی از SVG برای تلفن های همراه به نام SVGT یاSVG Tiny version موجود است که پیاده سازی سبکتری نسبت به فرمت اصلی SVG دارد.
نمایشگر و چاپگر های امروز همگی از گرافیک شطرنجی استفاده می کنند. بدین معنی که اطلاعات برای نمایش یا خروجی چاپی باید به صورت پیکسل به پیکسل (بیت مپ یا آرایه پیکسلی) تعریف شوند. در پی تبدیل گرافیک برداری به بیت مپ ها، حجم فایل حاصل تابعی از رزولوشن دستگاه رندر کننده است ولی کماکان حجم فایل SVG متناظر به دلیل ماهیتش به مراتب کمتر است و در بین سیستم های مختلف ثابت است.
با وجود الگوریتم های متنوعی برای تبدیل گرافیک برداری به گرافیک شرنجی، این عملیات نسبت به عملیات برداری سازی یا ساده تلقی می شود. دشواری معکوس عملیات شطرنجی سازی ضعف این سیستم در حفظ کیفیت تصاویر طیف-پیوسته مانند تصاویر خروجی دوربین های عکاسی است. به دلیل ماهیت گرافیک برداری امکان ویرایش اجزا تصویر به صورت اشیا گسسته وجود دارد.
استفاده از گرافیک برداری برای مواقعی که نیاز به فوتورئالیسم نداشته باشیم مناسبند.
از همین رو است که برخی معقدند که نام گرافیک شی گرا (object-oriented graphics) برای گرافیک برداری مناسبتر است زیرا منظور از بردار در این سیستم بردار فضای اقلیدسی نیست بلکه اشیایی هندسی است که به صورت ریاضی قابل توصیف باشند. اما این نام نیز می تواند گمراه کننده باشد و به صورت سیستمی گرافیکی که با برنامه نویسی شی گرا طراحی شده، تفسیر شود.
چند مزیت گرافیک برداری نسبت به گرافیک شطرنجی عبارت اند از:به عنوان مثال، برای توصیف یک دایره به شعاع r در گرافیک برداری، ارائه اطلاعات زیر ضروری است:در مقابل نقطه ضعف این نوع سیستم گرافیکی در فایل های تصویری خروجی دوربین ها یا اسکنرها است. تصاویر خروجی این دستگاه ها به فرمت شطرنجی هستند و به دلیل طیف-پیوسته بودن با تبدیل آنها به تصاویر برداری کیفیت و اطلاعات مهمی از دست می روند. همچنین بسیاری از نرم افزار های ویرایش گرافیک شطرنجی موجود امکان کار با عبارت های ریاضی ندارند و به صورت پیکسلی کار می کنند.
اگر چه بسیاری از نرم افزار های ویرایش تصاویر نیز وجود دارند که امکان ترکیب و استفاده از منابع تصویری برداری و شطرنجی را می دهند.
هر فرمت فایل گرافیک برداری فقط انواعی از اشیا گرافیکی ساده تحت عنوان اشیا اولیه را پشتیبانی می کند. به عنوان مثال تقریبا همه فرمت های برداری موجود، اشیا زیر را پشتیبانی می کنند:اکثر فرمت های برداری موارد زیر را نیز پشتیبانی می کنند:تعدادی از فرمت های تخصصی برداری (برای کاربرد های مهندسی خاص)، اشیا گرافیکی زیر را نیز پشتیبانی می کنند:نرم افزار های موجود برای تولید تصاویر با فرمت گرافیک برداری به دو دسته تقسیم می شوند: دسته‌ای بدون رابط کاربر گرافیکی که نیازمند برنامه نویسی هستند و دسته‌ای که امکان drag-and-drop اشیا گرافیکی با واسط کاربری.
نرم افزار های دسته اول بسیار شبیه به کامپایلر ها هستند. برای رسم تصاویر فنی مورد نیاز در کتب ریاضی و مهندسی استفاده می شود. سیستم حروفچینی نویسه ها و معادلات ریاضی در این زبان مانند لاتک است و همچنین افزونه هایی برای استفاده مستقیم آن در کد منبع لاتک وجود دارد. رابطه گرافیکی برای کاربران تازه‌کار این زبان به کمک زبان برنامه نویسی پایتون نوشته شده است که Xasy نام دارد. زبان Asymptote از زبان متا پست (MetaPost) الگو گرفته است ولی سینتکسی بسیار مشابه زبان C دارد.نمونه کد در این زبان برای رسم : import graph; size(8cm); int k = 1; real f (real t) { draw((0, -2) -- (0, 2) .. (2,0) .. cycle); draw((-2, 0) -- (2, 0) .. (0,-2) .. cycle, cyan); draw(circle((0,0), 1), red); draw(polargraph(f, 0, 2pi), green); k = 2; draw(polargraph(f, 0, 2pi), blue); k = 3; draw(polargraph(f, 0, 2pi), orange);
همچنین برای ویرایش تصاویر با یک فرمت گرافیک برداری خاص مانند SVG یا EPS میتوان از ابزار مناسب برای آن فرمت استفاده کرد. به عنوان مثال نرم افزار متن باز Draw.io امکان تولید و ویرایش تصاویر گرافیک برداری SVG را به کمک رابط کاربر گرافیکی می دهد.