用渐近线填充椭圆的扇区

用渐近线填充椭圆的扇区

我已经在渐近线中得到了一个符合极坐标要求的椭圆,但我正试图阐明开普勒第二定律,如果能从其中一个焦点填充扇区就更好了。

我已经得到了类似的东西在此处输入图片描述,但我不知道如何填充如图所示的扇区:在此处输入图片描述

答案1

最简单的方法可能取决于asymptote您已经编写的代码。如果您不关心切割的确切角度,那么您可以subpath像这样创建椭圆的一部分。

unitsize(1inch);

real a = 1.0;
real b = 0.8;
pair f = (sqrt(a*a - b*b), 0);

path ell = scale(a,b)*unitcircle;
path sector = subpath(ell, 2.5, 2.9);

filldraw(sector--f--cycle, yellow);
draw(ell);
draw(sector, 1+red);
dot(f, 6+red);

在此处输入图片描述

如果您想要指定扇区的精确角度,那么您可以使用intersect从焦点以所需角度射出的光线绘制椭圆。

unitsize(1inch);

real a = 1.0;
real b = 0.8;
pair f = (sqrt(a*a - b*b), 0);
real angle1 = 90;
real angle2 = 180;

path ell = scale(a,b)*unitcircle;

path sector = subpath(ell,
        intersect(ell, f--f+rotate(angle1)*(10,0))[0],
        intersect(ell, f--f+rotate(angle2)*(10,0))[0]);

filldraw(sector--f--cycle, yellow);
draw(ell);
draw(sector, 1+red);
dot(f, 6+red);

在此处输入图片描述

相关内容