Mandelbrot (WebFX demo)

Mandelbrot (WebFX demo)

  • آخرین نسخه
  • NKT-IKBU

یک برنامه ساده Mandelbrot برای نشان دادن WebFX

درباره این برنامه

مخاطبان هدف

این برنامه برای توسعه دهندگانی که پروژه WebFX را دنبال می کنند منتشر شده است و بخشی از دموی پروژه است.


برای مخاطبان جدید

WebFX یک راه حل چند پلت فرم رایگان و منبع باز است که می تواند 7 پلتفرم (Web، Android، iOS، macOS، Linux، Windows و جاسازی هایی مانند Raspberry Pi) را از یک پایه کد جاوا مورد هدف قرار دهد.
فناوری های اساسی: OpenJFX، Gluon و GWT.

به عنوان مثال، می توانید از نسخه وب همین برنامه در https://mandelbrot.webfx.dev دیدن کنید.

هر پلتفرمی که باشد، کد منبع برنامه دقیقاً یکسان است (برای دسترسی به کد منبع این نسخه ی نمایشی به بخش پیوندها در زیر مراجعه کنید).
این برنامه به زبان جاوا نوشته شده است و از JavaFX API برای ساخت رابط کاربری استفاده می کند.
زنجیره ابزار Gluon (ساخته شده در بالای GraalVM) برای کامپایل کد جاوا برنامه در یک برنامه بومی برای همه پلتفرم ها به جز وب استفاده می شود (بنابراین این شامل این نسخه اندروید نیز می شود).
GWT برای کامپایل نسخه وب استفاده می شود. این کد جاوا را به یک کد جاوا اسکریپت بهینه تبدیل می کند.
در نتیجه، تمامی فایل های اجرایی در تمامی پلتفرم ها عملکرد بهینه ای را ارائه می دهند.


درباره این نسخه ی نمایشی خاص

این نسخه ی نمایشی شبیه نسخه ی نمایشی ردیاب Ray است، اما علاوه بر این، از مزایای WebAssembly در پلت فرم وب نیز بهره می برد.

مانند Ray tracer، نسخه ی نمایشی Mandelbrot نمونه ای از برنامه ای را نشان می دهد که با وجود استفاده زیاد از CPU، رابط کاربری را مسدود نمی کند، و این در هر پلتفرمی (حتی در وب) است.

در حالی که برنامه در حال انجام محاسبات است، رابط کاربری هنوز فعال است، حتی می‌توانید انیمیشنی را که تاکنون محاسبه شده است، در حالی که محاسبات را در پس‌زمینه ادامه می‌دهد، پخش کنید.

این امر با استفاده از WebFX Worker API و WebAssembly API که به Web Workers واقعی برای پلتفرم وب و رشته‌های استاندارد جاوا برای پلتفرم‌های دیگر ترجمه می‌شود، به دست می‌آید.

هنگامی که WebAssembly پشتیبانی می شود (فقط پلت فرم وب)، محاسبات با استفاده از WebAssembly انجام می شود.


پیوندها

کد منبع نسخه آزمایشی: https://github.com/webfx-demos/webfx-demo-mandelbrot
وب سایت WebFX: https://webfx.dev
WebFX GitHub: https://github.com/webfx-project/webfx

نسخه ها Mandelbrot (WebFX demo)