gpt4 book ai didi

python - 使用python高效绘制线条

转载 作者:行者123 更新时间:2023-12-01 03:57:55 26 4
gpt4 key购买 nike

我正在尝试找出一种使用 python 在屏幕上绘制线条图案的有效方法。

不久前,我拼凑了一些可以驱动激光呼吸描记器的代码。这基本上是 3 个圆圈,每个圆圈绕着彼此圆周上的一个移动点旋转。这会产生一系列点,根据每个圆圈旋转的相对速度描绘出各种图案。

所以现在我有一长串 x,y 线,我想将其绘制为一条线,python 中是否有一个函数(当前正在使用 Pygames)可以获取一系列点并用平滑的方式将它们连接起来曲线。

例如,假设我有几百个点来描述此 link 中的模式,Python 中是否有一种“简单”的方法可以将完整图案渲染到屏幕上。我假设这比尝试绘制数千个点中的每一个以获得线条的外观更快。

编辑

我一直假设有一种更快的方法可以通过传递函数的起点和终点加上半径来在屏幕上绘制半圆。而不是计算曲线上的 2,000 个点并将它们分别绘制为点或短直线。我还假设绘制一条 100 点长的直线比将同一条线作为单独的点输出更快?

最佳答案

免责声明这不是答案

<小时/>

扩展我上面的评论

You don't want the curve. You want to sample the curve with a frequency sufficient to fool perception

看看密集采样与粗采样对屏幕上绘制内容的感知的影响

import numpy as np
import matplotlib.pyplot as plt

t = np.linspace(0, np.pi*3, 301)
x = np.sin(t)

每个点(t[i], x[i])代表一个点,这里是正弦曲线中的一个点,在您的应用程序中是一个更复杂的曲线,所以让我们绘制这些点使用不同的采样步骤,看看采样率是否会影响您对所绘制内容的感知...

for step in (1, 25, 50):
plt.plot(t[::step], x[::step], label='step=%d'%step)
# ^^^^ ^^^^
plt.ylim((-1.05, 1.05))
plt.legend(loc='best')

这给了我

enter image description here

我敢说,在足够高的采样率下,所绘制的看起来就像一条曲线,即使它是一系列直线段(当您查看另外两个实例时,很明显) tx)。

在其他评论中,您被告知可以使用哪个 pygames 函数来完成您的任务。

关于python - 使用python高效绘制线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37113429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com