From 70a1711e877ba980e094ef66925568ee94afc3af Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Tue, 10 Nov 2020 01:11:13 +0300 Subject: =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D1=86?= =?UTF-8?q?=D0=B2=D0=B5=D1=82=20=D0=B2=20=D0=BE=D1=82=D1=80=D0=B8=D1=81?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D1=83=20=D0=B3=D1=80=D0=B0=D1=84=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task05/Guschin/MyForm.h | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/task05/Guschin/MyForm.h b/task05/Guschin/MyForm.h index 207294e..7e76f41 100644 --- a/task05/Guschin/MyForm.h +++ b/task05/Guschin/MyForm.h @@ -114,21 +114,39 @@ namespace Guschin { y = f(x); start.y = Wcy - (y - Vc_work.y) / V_work.y * Wy; } - + + float deltaY; + float red, green, blue; while (start.x < maxX) - { - end.x = start.x + 1.f; + { + end.x = start.x + 1.f; x += deltaX; hasEnd = f_exists(x, deltaX); if (hasEnd) { y = f(x); - end.y = Wcy - (y - Vc_work.y) / V_work.y * Wy; + deltaY = (y - Vc_work.y) / V_work.y; + end.y = Wcy - deltaY * Wy; } vec2 tmpEnd = end; bool visible = hasStart && hasEnd && clip(start, end, minX, minY, maxX, maxY); if (visible) { + if (deltaY > 1.f) deltaY = 1.f; + if (deltaY < 0.f) deltaY = 0.f; + green = 510.f * deltaY; + if (deltaY < 0.5) + { + blue = 255.f - green; + red = 0.f; + } + else + { + blue = 0.f; + red = green - 255.f; + green = 510.f - green; + } + pen->Color = Color::FromArgb(red, green, blue); g->DrawLine(pen, start.x, start.y, end.x, end.y); } start = tmpEnd; -- cgit v1.2.3