在圆的圆周上绘制点,但以椭圆形出现

德鲁普·乌普雷蒂(Dhruv Upreti)

我编写了一个代码(在python中),该代码每10度在一个圆的圆周上指向一个点:

rad = 75
originX = originY = 0
tenDegreePts = [[],[]]

for theta in range(0, 360, 10):
    b = (np.cos(theta))*rad
    a = (np.sin(theta))*rad
    tenDegreePts[0].append(originX+b)
    tenDegreePts[1].append(originY+a)

plt.plot(tenDegreePts[0],tenDegreePts[1],'o')
plt.ylim(-100,100)
plt.xlim(-100,100)

该程序可以完美运行,但是由于某些原因,圆具有更多的椭圆形状。此外,图中的点之间的距离也不相等:

每10度在圆圆周上的点的散点图:
圆上点的散点图

(在图片中您看不到轴,但是它们在x和y上都从-100变为100)

约翰·C

您可以plt.axis('equal')用来保持绘图的正确纵横比。

关于点不均匀分布的问题:您theta以度为单位,但是三角函数期望它们的输入以弧度为单位。您可以将度数转换为弧度,乘以180,然后除以Pi,如代码中所示。

我还重写了一些代码,以更好地利用numpy的广播技巧。

import matplotlib.pyplot as plt
import numpy as np

originX = originY = 0
theta = np.linspace(0, 360, 37)

for rad in range(15, 85, 10):
    tenDegreePtsX = np.cos(theta*np.pi/180) * rad + originX
    tenDegreePtsY = np.sin(theta*np.pi/180) * rad + originY
    plt.plot(tenDegreePtsX, tenDegreePtsY, 'o', ms=rad/10)

plt.ylim(-100,100)
plt.xlim(-100,100)
plt.axis('equal')

plt.show()

校正图

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在图形对象上绘制填充的椭圆形?

来自分类Dev

如何在画布上绘制平滑的椭圆形

来自分类Dev

画布:arc(75,75,50,0,3.1415,true)绘制椭圆形而不是圆形

来自分类Dev

在Android中可以绘制椭圆形,但是不能绘制矩形

来自分类Dev

使用Java Swing将点绘制为椭圆形

来自分类Dev

矩形,椭圆形底部

来自分类Dev

CaptureElement为椭圆形

来自分类Dev

如何在乌龟图形(python)中绘制椭圆/椭圆形?

来自分类Dev

Android:如何创建椭圆形的可绘制资源?

来自分类Dev

Java:NetBeans中没有出现paintComponent()椭圆形

来自分类Dev

绘制褪色的透明椭圆形

来自分类Dev

如何在JLabel中绘制椭圆形图像

来自分类Dev

在OpenGL中创建椭圆形或椭圆形光源?

来自分类Dev

椭圆形气泡排序

来自分类Dev

Python从4点创建一个椭圆形

来自分类Dev

如何在画布上绘制平滑的椭圆形

来自分类Dev

画布:arc(75,75,50,0,3.1415,true)绘制椭圆形而不是圆形

来自分类Dev

opengl绘制椭圆形而不是圆形

来自分类Dev

在椭圆形周长中绘制对象

来自分类Dev

如何在图像中的对象周围绘制椭圆形

来自分类Dev

如何在乌龟图形(python)中绘制椭圆/椭圆形?

来自分类Dev

Unity椭圆形绘制椭圆

来自分类Dev

在圆上绘制点

来自分类Dev

如何在JFrame上绘制矩形和椭圆形

来自分类Dev

看不到椭圆形在面板上移动

来自分类Dev

如何在JLabel中绘制椭圆形图像

来自分类Dev

如何填充椭圆形?

来自分类Dev

在Python中绘制椭圆形轨道(使用numpy,matplotlib)

来自分类Dev

椭圆形的 RecyclerView 动画