From ab9bf150789fd35c461fb74afea1897684c3a0d8 Mon Sep 17 00:00:00 2001 From: Alexandre B A Villares <3694604+villares@users.noreply.github.com> Date: Sat, 4 Jan 2025 21:45:13 -0300 Subject: [PATCH] 4 --- 2025/sketch_2025_01_04/sketch_2025_01_04.png | Bin 0 -> 34203 bytes 2025/sketch_2025_01_04/sketch_2025_01_04.py | 44 +++++++++++++++++++ docs/README.md | 10 +++++ 3 files changed, 54 insertions(+) create mode 100644 2025/sketch_2025_01_04/sketch_2025_01_04.png create mode 100644 2025/sketch_2025_01_04/sketch_2025_01_04.py diff --git a/2025/sketch_2025_01_04/sketch_2025_01_04.png b/2025/sketch_2025_01_04/sketch_2025_01_04.png new file mode 100644 index 0000000000000000000000000000000000000000..7ef42243854ae19d0d72bb3de1d061f74297db26 GIT binary patch literal 34203 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 20: + with py5.push_matrix(): + py5.translate(-r/2, 0) + py5.rotate(py5.PI/3) + wave(r/2) + py5.rotate(-py5.PI/3) + py5.translate(r, 0) + py5.rotate(py5.PI/2) + wave(r/2) + +def circle_arc_pts(x, y, radius, start, sweep): + return arc_pts(x, y, radius * 2, radius * 2, start, start + sweep) + +def arc_pts(cx, cy, w, h, start_angle, end_angle, num_points=24): + sweep_angle = end_angle - start_angle + pts_list = [] + step_angle = float(sweep_angle) / num_points + va = start_angle + side = 1 if sweep_angle > 0 else -1 + while va * side < end_angle * side or abs(va - end_angle) < 0.0001: + pts_list.append((cx + cos(va) * w / 2.0, + cy + sin(va) * h / 2.0)) + va += step_angle + return pts_list + +py5.run_sketch() \ No newline at end of file diff --git a/docs/README.md b/docs/README.md index 72d634ba..f83d94e0 100644 --- a/docs/README.md +++ b/docs/README.md @@ -21,6 +21,16 @@ If you appreciate what I have been doing, you may also support my artistic work, 2025 \| [2024](2024.md) \| [2023](2023.md) \| [2022](2022.md) \| [2021](2021.md) \| [2020](2020.md) \| [2019](2019.md) \| [2018](2018.md) +--- + +### sketch_2025_01_04 + +![sketch_2025_01_04](https://raw.githubusercontent.com/villares/sketch-a-day/main/2025/sketch_2025_01_04/sketch_2025_01_04.png) + +[sketch_2025_01_04](https://github.com/villares/sketch-a-day/tree/main/2025/sketch_2025_01_04) [[py5](https://py5coding.org/)] + + + --- ### sketch_2025_01_03