diff options
| author | Andrew Guschin <saintruler@gmail.com> | 2020-11-10 01:11:13 +0300 |
|---|---|---|
| committer | Andrew Guschin <saintruler@gmail.com> | 2020-11-10 01:11:13 +0300 |
| commit | 70a1711e877ba980e094ef66925568ee94afc3af (patch) | |
| tree | e7c99390d7551c5fec79eac5da80e81bab572eb4 | |
| parent | 9c0e1d4fdf65bf2c0d160ad2509ae33fd1f784c6 (diff) | |
Добавил цвет в отрисовку графика
| -rw-r--r-- | task05/Guschin/MyForm.h | 26 |
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; |