29 Jul 2026, 11:20 UTC91 views1 reactionsread 8 August 2026 این کل قضیه رسم مثلث بود
نکته مثبت الگوریتمی که توضیح دادم اینه که نیاز نیست چک کنیم یه پیکسل داخل مثلث هست یا نه چون همیشه محدوده پیکسلهای داخل مثلث رو با شیب خط بین رئوس میدونیم.
- بطور خلاصه از یه راس که بالاترین یا پایین راس مثلث باشه شروع میکنیم
- محدوده کمینه و بیشینه مختصات x رو برابر مولفه x اون راس انتخابی میذاریم
- نسبت تغییرات x به تغییرات y رو برای دو راس دیگه محاسبه میکنیم (dx/dy)
- هربار که به سمت را…
❤1
29 Jul 2026, 11:13 UTC91 views1 reactionsread 8 August 2026 Photo
با این تغییرات، حتی اگر مثلث ما به این دو حالت هم باشه بازم الگوریتم درست کار میکنه و دیگه محدود به این نیست که حتما یکی از رئوس باید بالاتر از دوتای دیگه باشه :)
❤1
29 Jul 2026, 11:10 UTC82 views1 reactionsread 8 August 2026 Photo
ولی این الگوریتم دوتا باگ داره:
اولی اینه که من فرض کردم حتما یه راس از مثلث بالای دو راس دیگه هست.
دومی هم اینه که اگر به راس وسط برسیم شیب یکی از خطوط عوض میشه.
پس ما میایم مثلثمون رو از راس وسط تبدیل به ۲تا مثلث میکنیم.
یکی کف و اون یکی سقف صاف داره.
با این کار میدونیم که شیب خط منتهی به رئوس مثلث همیشه ثابته
حالا تمام انواع مثلث رو میتونیم رسم کنیم
یکبار از بالا شروع میکنیم و تا راس وسطی ادامه میدیم
یکبار هم …
❤1
29 Jul 2026, 10:45 UTC78 views2 reactionsread 8 August 2026 Photo
به همین راحتی ما میتونیم از مختصات راس بالایی شروع کنیم و با پایین اومدن و کم کردن y، بازه عددی که x داخلش قرار میگیره رو میتونیم پیدا کنیم :)))
مقدار اولیه x min و x max برابر مقدار x راس بالایی خواهد بود
هربار که میایم پایین به اندازه dx/dy بازه رو تغییر میدیم
مقدار x min اینجا توی این شکل با dx/dy راس وسطی جمع میشه
مقدار x max هم با dx/dy راس پایینی جمع میشه
اینجوری نیاز نیست حتی بررسی کنیم پیکسل داخل مثلث هست…
❤2
29 Jul 2026, 10:40 UTC67 views1 reactionsread 8 August 2026 Photo
برای اینکه ببینیم یه نقطه داخل یه مثلث هست یا نه لازم نیست پیکسلها رو با روشهای عجیب بررسی کنیم
+ اینجا فرض میکنیم مختصات رو به حالت Screen ترجمه کردیم.
ما مختصات رئوس مثلث رو داریم پس در نتیجه میتونیم با محاسبه کردن شیب خط بین اونها، ببینیم اگر y رو به اندازه dy تغییر بدیم، مقدار x چقدر تغییر میکنه.
چون با اسکن کردن هر خط از پیکسلها ما داریم از بالا به پایین میایم. این یعنی مقدار y هربار یک پیکسل کم میشه
پس من…
❤1
29 Jul 2026, 10:29 UTC65 views1 reactionsread 8 August 2026 Photo
بعدش میتونیم شروع کنیم و هر سطر از پیکسل ها رو بررسی کنیم و ببینیم که داخل مثلث هست یا نه
اگر داخل مثلث بود اون پیکسل رنگ میشه
ولی مشکل اول اینه که چجوری تشخیص بدیم پیکسل داخل مثلث هست یا نه
برای این کار یادتون باشه که ما مرکز هر پیکسل رو نماینده اون پیکسل درنظر میگیریم
مشکل دوم اینه که اسکن کردن تمام پیکسلها خیلی کنده و نیاز نیست لزوما این کارو بکنیم
یه راه بهتر برای این کار هست :)
@hxnotes
❤1
29 Jul 2026, 10:26 UTC67 views1 reactionsread 8 August 2026 Photo
حالا برای رسم مثلث اول فرض میکنیم تمام رئوس مختصاتشون بصورت Normalized هست
بعدش باید اونارو با ترتیب مقدار مولفه y مرتب کنیم چون این کار بهمون کمک میکنه بدونیم کدوم راس بالا، وسط و پایین مثلثه
@hxnotes
❤1
29 Jul 2026, 10:18 UTC67 views1 reactionsread 8 August 2026 Photo
چرا این فرمولها کار میکنن؟
چون ما میخوایم بازه منفی یک تا مثبت یک رو به بازه صفر تا طول/عرض پنجره تبدیل کنیم
اینجا مرحله به مرحله برای تبدیل طول نوشتم که چجوری این اتفاقات میفته
مقدار y باید یکبار از عدد یک کم بشه چون توی مختصات صفحه نمایش وقتی y پایین میره درواقع داره بیشتر میشه (برعکس مختصات عادی)
@hxnotes
❤1
29 Jul 2026, 10:14 UTC72 views2 reactionsread 8 August 2026 Photo
در ابتدا برای اینکه این کارو انجام بدیم باید با مختصات صفحه آشنا باشیم
ما یه سیستم مختصات Normalized داریم که x و y توی اون بین منفی یک و مثبت یک هستن.
خوبی این سیستم اینه که مستقل از ابعاد صفحه نمایش یا پنجره برنامه ما کار میکنه
اما وقتی میخوایم پیکسل ها رو رسم کنیم باید اون مختصات رو ترجمه کنیم به مختصات صفحه نمایش یا Screen
برای این کار هم ۲تا فرمول داریم که توی عکس نوشتم
حرف W طول صفحه (محور x)
حرف H عرض صفحه …
❤1🔥1
29 Jul 2026, 10:11 UTC90 views3 reactionsread 8 August 2026 Video
چند روز قبل یه Rasterizer نوشتم که میتونه راس های یه مثلث رو بگیره و بعد اونارو به تصاویر قابل نمایش رندر کنه
درواقع اینجا میخوایم کاری که کارت گرافیک برامون انجام میده رو توی نرمافزار پیاده سازی کنیم که بهش software rendering هم میگن
یعنی با استفاده از CPU فریم ها رو ترسیم میکنیم و نمایش میدیم
@hxnotes
🔥3
13 Apr 2026, 22:24 UTC≈3,800 views16 reactionsread 8 August 2026 ضرری که حکومت و قطعی اینترنت به کشور زد، جنگ نزد
💔13👍1👎1🤣1
13 Feb 2026, 15:46 UTC511 views1 reactionsread 8 August 2026 توی بازیای که من نوشتم زمانی که نوبت شما باشه بورد آبی رنگه
زمانی که بورد قرمز باشه یعنی نوبت هوش مصنوعیه و داره تصمیم میگیره چیکار کنه
زمانی که بورد بنفشه یعنی شما یه گروه 3تایی تشکیل دادین و میتونین یه مهره از مهرههای هوش مصنوعی رو حذف کنین
اگر Emscripten رو هم داشته باشید میتونید برای WASM هم کامپایلش کنید و روی مرورگر اینترنت بازی کنید.
@hxnotes
💔1
Showing the 12 most recent of 17 posts we hold for @hxnotes. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.