- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
很容易得到某一天月亮被照亮的百分比
import ephem
a=ephem.Moon(datetime.now())
mn=a.moon_phase #illuminated percentage of the moon.
现在我想尝试绘制它来表示月相。但是我不知道如何只填充一个圆的百分比来模拟地球在月球上的阴影。
我最接近的尝试是这个:
首先绘制“满月”
fig, ax = plt.subplots()
theta=np.linspace(0, 2*np.pi, 100)
r = np.sqrt(1)
c1x = r*np.cos(theta)
c1y = r*np.sin(theta)
ax.plot(c1x, c1y,color='k',lw=2,zorder=0*a)
然后添加一个更大的黑色圆圈来模拟掠过月亮的阴影。偏移量“xmn”会将阴影移到一边,以便只有“n”百分比的满月可见
r = np.sqrt(2)
c2x = r*np.cos(theta)
c2y = r*np.sin(theta)
xmn=1.2
ax.fill(c2x+xmn, c2y,color='k',lw=2,zorder=1*a)
终于把“满月”圈外的一切都藏起来了
#Circle to hide all circles
theta=np.linspace(0, 2*np.pi, 100)
# the radius of the circle
r = np.sqrt(4)
c3x = r*np.cos(theta)
c3y = r*np.sin(theta)
ax.plot(c3x, c3y,color='w')
ax.fill_between(c3x,c3y,c1y,color='w',zorder=2)
ax.fill_betweenx(c1x,c1y,c3y,color='w',zorder=2)
ax.set_xlim(-1.1, 1.1)
ax.set_ylim(-1.1, 1.1)
plt.show()
我找不到一个聪明的方法来做到这一点。我怎样才能找到 xmn?
提前致谢
最佳答案
Eureka !
我在 this site 上找到了答案
他们解题的方法是计算两个圆重叠的面积,然后减去月球圆的面积。为此,必须知道两个圆心之间的距离,这正是我所需要的 (xmn)。
为此,他们计算了大圆的月牙面积,然后求出两者重叠的面积,最后是小圆的月牙面积。然后我们可以找到总面积的百分比。
不知何故,用于计算较大圆(网站上的 lune_1)的新月面积的方程给出了较小新月的面积。不太明白为什么,但它符合我的目的。
要是我还有数学天赋就好了,解方程 lune_1 以找到“d”会给我一个直接的答案,其中 lune_1 = 照明面积,d = 两个圆心之间的距离.
经过一些调整,我得到了这段代码
def calc_crescent_pos(r1,r2,mn):
# mn = Illuminated percentage of the moon
# r1 = radius of the moon circle
# r2 = radius of the shadow circle
lune=0
d=r2-r1
area=np.pi*r1**2 # area of the moon circle
while lune/area < mn: #increase separation between the 2 circles, until the area of the moon crescent is equal to the illuminated percentage of the moon
d=d+0.01
lune = 2*(np.sqrt( (r1+r2+d) * (r2+d-r1) * (d+r1-r2) * (r1+r2-d))/ 4) + r1**2 * math.acos( (r2**2-r1**2-d**2) / (2*r1*d) ) - r2**2 * math.acos( (r2**2+d**2-r1**2) / (2*r2*d))
return d-0.01
import ephem,math
import matplotlib.pyplot as plt
import numpy as np
from datetime import *
a=ephem.Moon(datetime.now())
mn=a.moon_phase #illuminated percentage of the moon.
fig, ax = plt.subplots()
#Circle1; full moon
theta=np.linspace(0, 2*np.pi, 100)
# the radius of the circle
r1 = np.sqrt(1)
c1x = r1*np.cos(theta)
c1y = r1*np.sin(theta)
ax.plot(c1x, c1y,color='k',lw=2,zorder=0*a)
#Circle 2; Shadow
r2 = np.sqrt(2)
c2x = r2*np.cos(theta)
c2y = r2*np.sin(theta)
xmn=calc_crescent_pos(r1,r2,mn)
ax.fill(c2x+xmn, c2y,color='k',lw=2,zorder=1*a)
#Circle to hide all circles
theta=np.linspace(0, 2*np.pi, 100)
# the radius of the circle
r = np.sqrt(4)
c3x = r*np.cos(theta)
c3y = r*np.sin(theta)
ax.plot(c3x, c3y,color='w')
ax.fill_between(c3x,c3y,c1y,color='w',zorder=2)
ax.fill_betweenx(c1x,c1y,c3y,color='w',zorder=2)
ax.set_xlim(-1.1, 1.1)
ax.set_ylim(-1.1, 1.1)
plt.show()
现在只需添加几条线即可确保每当月亏或新月时阴影都以正确的方式移动。
关于python - 绘制月亮被照亮的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70534054/
我正在使用 Laravel websocket written by beyoundcode . 几天后,我连接到 myDomain.com/laravel-websockets第一步解决了。 但是现
我已经在本地主机中创建了数据库 Illuminate\Database\QueryException : SQLSTATE[HY000] [1045] Access denied for user
我已经配置了 php.ini 文件 (post_max_size=10240M),但它仍然抛出 PostTooLargeException。如何在 Laravel 5.5 中增加上传和下载限制? 最佳
require dirname(dirname(__DIR__)) . '/vendor/autoload.php'; require dirname(__DIR__) . '/config.php'
我正在使用 Laravel,当我尝试运行 php artisan make:migrate 时,它显示了这个错误: Illuminate\Database\QueryException : SQLST
我使用 PHP 7.0,我还在我的 Ubunutu 服务器上使用 Apache。 我已经更新了我的 php.ini cat /etc/php/7.2/fpm/php.ini
我将 Centos 7.7 与 PHP 7.2 一起使用,但是当我尝试使用 laravel 迁移 db 时会发生此错误。尝试了很多东西,但我无法解决这个问题。 Illuminate\Database\
我目前正在做一个学校项目,我的数据库遇到了这个问题,我想创建与视频和类别的关系,这是我的两个表。视频表: increments('id'); $table->string('name'
这个问题已经有答案了: Error: Tablespace for table xxx exists. Please DISCARD the tablespace before IMPORT (27
我正在尝试将在 laravel 中创建的表迁移到数据库并使用外键。但是我收到以下错误。请帮我看看哪里出错了? Illuminate\Database\QueryException : SQLSTATE
我已经在 github 上下载了一个 repo 并创建了一个数据库。我正在尝试进行迁移并收到以下错误 错误: Illuminate\Database\QueryException : SQLSTATE
我是 laravel 的新手,尝试在我的数据库中输入值时遇到了这个问题。同样的事情适用于患者的表格和表格,但不适用于医生。如果有人能指出我哪里出了问题,那将不胜感激 表格, { public
我对 artisan 和迁移有疑问。 我刚刚创建了一个新项目,使用 Laravel Schema Design 复制粘贴我的数据库,将 schemaLenght 放入我的 config/databas
我有一个问题,但我得到的答案并没有真正帮助我。 所以我一直在尝试为每个用户基本上创建一个 Profiles 表。我遵循了一对一关系的规则,但我不断收到此错误 Illuminate\Database\Q
我是一名优秀的程序员,十分优秀!