10 #include "third_party/imgui/imgui.h"
101 builder.
AddCubicCurve({0, 200}, {50, 400}, {350, 0}, {400, 200});
126 std::make_shared<Image>(CreateTextureForFixture(
"boston.jpg")), {10, 10},
145 builder.
LineTo({50, 100});
146 builder.
LineTo({100, 100});
147 builder.
LineTo({100, 50});
166 builder.
LineTo({520, 120});
167 builder.
LineTo({300, 310});
168 builder.
LineTo({100, 50});
183 auto callback = [&](
AiksContext& renderer) -> std::optional<Picture> {
185 static float scale = 3;
186 static bool add_circle_clip =
true;
189 ImGuiWindowFlags_AlwaysAutoResize)) {
190 ImGui::ColorEdit4(
"Color",
reinterpret_cast<float*
>(&color));
191 ImGui::SliderFloat(
"Scale", &
scale, 0, 6);
192 ImGui::Checkbox(
"Circle clip", &add_circle_clip);
197 canvas.
Scale(GetContentScale());
209 .QuadraticCurveTo({60, 20}, {60, 60})
212 .QuadraticCurveTo({60, 60}, {20, 60})
217 if (add_circle_clip) {
222 auto [handle_a, handle_b] =
226 Point point_a = screen_to_canvas * handle_a * GetContentScale();
227 Point point_b = screen_to_canvas * handle_b * GetContentScale();
229 Point middle = (point_a + point_b) / 2;
247 ASSERT_TRUE(OpenPlaygroundHere(callback));
252 canvas.
Scale(GetContentScale());
257 auto draw = [&canvas](
Paint& paint) {
260 Point origin = {100, 100};
263 canvas.
DrawLine({150, 100}, {250, 100}, paint);
264 for (
int d = 15; d < 90; d += 15) {
266 canvas.
DrawLine(origin + m * p0, origin + m * p1, paint);
268 canvas.
DrawLine({100, 150}, {100, 250}, paint);
271 canvas.
DrawLine({250, 250}, {250, 250}, paint);
278 std::vector<Color> colors = {
279 Color{0x1f / 255.0, 0.0, 0x5c / 255.0, 1.0},
280 Color{0x5b / 255.0, 0.0, 0x60 / 255.0, 1.0},
281 Color{0x87 / 255.0, 0x01 / 255.0, 0x60 / 255.0, 1.0},
282 Color{0xac / 255.0, 0x25 / 255.0, 0x53 / 255.0, 1.0},
283 Color{0xe1 / 255.0, 0x6b / 255.0, 0x5c / 255.0, 1.0},
284 Color{0xf3 / 255.0, 0x90 / 255.0, 0x60 / 255.0, 1.0},
285 Color{0xff / 255.0, 0xb5 / 255.0, 0x6b / 250.0, 1.0}};
286 std::vector<Scalar> stops = {
296 auto texture = CreateTextureForFixture(
"airplane.jpg",
302 {100, 100}, 200, std::move(colors), std::move(stops),
347 for (
auto i = 0; i < 10; i++) {
351 builder.
MoveTo({100.f + 50.f * i - 100, 100.f + 50.f * i});
352 builder.
LineTo({100.f + 50.f * i, 100.f + 50.f * i - 100});
353 builder.
LineTo({100.f + 50.f * i - 100, 100.f + 50.f * i - 100});
360 canvas.
DrawPath(builder.
TakePath(), {.color = Color::Red().WithAlpha(0.4)});
367 canvas.
Scale(GetContentScale());
371 std::vector<Color> colors = {
Color{1.0, 0.0, 0.0, 1.0},
372 Color{0.0, 0.0, 0.0, 1.0}};
373 std::vector<Scalar> stops = {0.0, 1.0};
413 const Scalar kTriangleHeight = 100;
420 .
MoveTo({0, kTriangleHeight})
421 .
LineTo({-kTriangleHeight / 2.0f, 0})
422 .
LineTo({kTriangleHeight / 2.0f, 0})
426 kTriangleHeight, kTriangleHeight),
436 .
MoveTo({0, kTriangleHeight})
437 .
LineTo({-kTriangleHeight / 2.0f, 0})
439 .
LineTo({kTriangleHeight / 2.0f, 0})
443 kTriangleHeight, kTriangleHeight),