summaryrefslogtreecommitdiff
path: root/task05/Guschin
diff options
context:
space:
mode:
authorAndrew Guschin <saintruler@gmail.com>2020-11-10 01:11:13 +0300
committerAndrew Guschin <saintruler@gmail.com>2020-11-10 01:11:13 +0300
commit70a1711e877ba980e094ef66925568ee94afc3af (patch)
treee7c99390d7551c5fec79eac5da80e81bab572eb4 /task05/Guschin
parent9c0e1d4fdf65bf2c0d160ad2509ae33fd1f784c6 (diff)
Добавил цвет в отрисовку графика
Diffstat (limited to 'task05/Guschin')
-rw-r--r--task05/Guschin/MyForm.h26
1 files 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;