用Spyrograph在同一屏幕上追踪多种形状
#showdev #开源 #python #contributorswanted

免责声明:此博客文章是由人类撰写的,借助AI

简介

在本教程中,我们将演示如何为多个轨迹链屏幕,从而使我们能够使用Spyrograph在同一帆布上分层不同的弹力图来创建迷人的艺术品!

遵循我们使用自定义代码片段在Action In Action

中展示此技术

GitHub logo chris-greening / spyrograph

Python库,用于分析,探索和可视化表皮式和低核管中仅几行代码

spyrograph: elegant mathematics and geometries

Animation of three geometric, symmetrical shapes being drawn next to one another left to right. The shape on the left is red, the middle green, and the right is blue.

是什么?

sperraph 是一种轻巧的python软件包,提供了一套表现力且灵活的工具,用于绘制美丽的数学驱动艺术。只需几行易于阅读的代码,您就可以开始分析,可视化和探索优雅的数学

Downloads Issues License Version Documentation Status

"Buy Me A Coffee"

Official website

Official docs

目录


关键功能

  • 表达和一致的语法
  • 强大的基础数学
  • 初学者专家友好
  • numpy是唯一需要的第三方安装
  • 清晰的可视化和动画
  • 可以灵活地对各种用途
  • 轻量级,只需插电

Sample hypotrochoid drawing showing a circle rolling around the interior of another circle drawing a geometric shape


安装

pip

使用

安装PYPI的最新稳定版本
 $ pip3安装sperraph 

或用

从github克隆开发版本
 $ git克隆https://github.com/chris-greening/spyrograph.git 

Quickstart

spyrograph旨在表达和易于使用 - 简单地跳入绘画优雅,复杂的形状 -





创建我们的第一个振动图

开始,让我们使用Hypotrochoid类创建我们的第一个弹力仪形状。导入必要的库,并为形状定义所需的参数

from spyrograph import Hypotrochoid
import numpy as np

first_shape = Hypotrochoid(
    R=233,
    r=200,
    d=233,
    thetas=np.arange(0, 100*np.pi, .5)
)

追踪第一个形状

接下来,追踪第一个形状,并通过调用trace方法来保持屏幕打开。默认情况下,exit_on_click选项设置为false,这确保了screen在追踪第一个形状后保持活跃

screen, turtles = first_shape.trace()

A black tracing is drawn on white background


创建第二个形状

现在,让我们通过使用scale方法来创建第二个形状,将第一个形状的大小调整为稍小的副本

second_shape = first_shape.scale(.85)

在同一屏幕上追踪第二个形状

通过将现有的screen传递到trace函数,在同一屏幕上追踪第二个形状。此外,将exit_on_click选项设置为True,然后选择第二个形状的其他color

second_shape.trace(
    exit_on_click=True,
    color="red",
    screen=screen
)

A copy of the first shape is traced on the same screen but slightly smaller and in red


实验不同的形状和颜色

可以随意尝试不同的形状,尺寸和颜色,以创建您独特的振动艺术品。您可以按照上面概述的步骤在同一屏幕上创建和分层多个形状


结论

链接屏幕用于多个轨迹是一种强大的技术,可以创建视觉令人惊叹的弹力仪设计

通过在同一画布上分层不同的形状和颜色,您可以产生醒目的艺术品

不要害怕探索各种模式,并用Sperraph释放您的创造力!