#include // for size_t #include // for getchar #include // for operator|, size, Element, text, hcenter, Decorator, Fit, WIDTH, hflow, window, EQUAL, GREATER_THAN, HEIGHT, bold, border, dim, LESS_THAN #include // for Full, Screen #include // for allocator, shared_ptr #include // for operator+, to_string, char_traits, string #include "ftxui/dom/flexbox_config.hpp" // for ftxui #include "ftxui/dom/node.hpp" // for Render #include int main(int argc, const char* argv[]) { using namespace ftxui; auto c = Canvas(100, 100); c.DrawText(0, 0, "This is a canvas", [](Pixel& p) { p.foreground_color = Color::Red; p.underlined = true; }); // Triangle: c.DrawPointLine(10, 10, 80, 10, Color::Red); c.DrawPointLine(80, 10, 80, 40, Color::Blue); c.DrawPointLine(80, 40, 10, 10, Color::Green); // Circle, not filled and filled: c.DrawPointCircle(30, 50, 20); c.DrawPointCircleFilled(40, 40, 10); // Plot a function: std::vector ys(100); for (int x = 0; x < 100; x++) ys[x] = 80 + 20 * cos(x * 0.2); for (int x = 0; x < 99; x++) c.DrawPointLine(x, ys[x], x + 1, ys[x + 1], Color::Red); auto document = canvas(&c) | border; auto screen = Screen::Create(Dimension::Fit(document)); Render(screen, document); screen.Print(); getchar(); return 0; } // Copyright 2020 Arthur Sonzogni. All rights reserved. // Use of this source code is governed by the MIT license that can be found in // the LICENSE file.