免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 发帖

[几何] 五角曲线

本帖最后由 hbghlyj 于 2021-12-3 00:03 编辑

[tikz]\begin{tikzpicture}
\draw[-latex] (-1.5,0)--(1.5,0) node[right] {$x$};
\draw[-latex] (0,-1.5)--(0,1.5) node[above] {$y$};
\draw [red,line width=0.2mm,domain=0:720,variable=\t,samples=500] plot ({(3 *cos(\t))/5 - 2/5*cos(3*(\t)/2)},{(3*sin(\t))/5+2/5*sin(3*(\t)/2)});
\end{tikzpicture}[/tikz]
$\left(\frac{3}{5}\cos\left(t\right)-\frac{2}{5}\cos\left(t-\frac{5t}{2}\right),\frac{3}{5}\sin\left(t\right)-\frac{2}{5}\sin\left(t-\frac{5t}{2}\right)\right),0\le t\le 4\pi$是一个五角形的曲线,我们来计算它的长度.
  1. a = {(3 Cos[t])/5 - 2/5 Cos[t - (5 t)/2], (3 Sin[t])/5 - 2/5 Sin[t - (5 t)/2]};
  2. Integrate[Norm[D[a, t]], {t, 0, 4 Pi}]
复制代码
得到答案为$48\over5$.
再来计算它的面积(中间的部分是被重复算了的)
  1. Integrate[Det[{a, D[a, t]}], {t, 0, 4 Pi}]/2
复制代码
得到答案为$6π\over25$

本帖最后由 青青子衿 于 2021-12-26 18:52 编辑

Pentacuspoid(五尖瓣线)
用这个可以求出交点来
\begin{align*}
\dfrac{3\sin\left(t\right)-2\sin\left(\frac{3t}{2}\right)}{3\cos\left(t\right)+2\cos\left(\frac{3t}{2}\right)}=\tan\left(\frac{\pi}{5}\right)
\end{align*}

\begin{align*}
\left\{
\begin{split}
x&=\frac{3}{5}\cos(t)+\frac{2}{5}\cos\left(\frac{3t}{2}\right)\\
y&=\frac{3}{5}\sin(t)-\frac{2}{5}\sin\left(\frac{3t}{2}\right)
\end{split}
\right.
\end{align*}



\begin{align*}
\left\{
\begin{split}
x&=\frac{t^{6}+15t^{4}-45t^{2}+5}{5\left(1+t^{2}\right)^{3}}\\
y&=\frac{8t^{3}\left(5-3t^{2}\right)}{5\left(1+t^{2}\right)^{3}}
\end{split}
\right.
\end{align*}

\begin{align*}
\left(\frac{1+\sqrt{5}}{16},\frac{1+\sqrt{5}}{16}\tan\frac{\pi}{5}\right)
\end{align*}

另外,无重叠的面积也可以得到

\begin{align*}

S=\frac{12}{5}\arctan\left[\sqrt{265+118 \sqrt{5}-2 \sqrt{30\left(1165+521 \sqrt{5}\right)}}\,\right]-\frac{3 \sqrt{15}}{160}
\end{align*}

五角星面积(非重叠)的MMA数值验算
*****
  1. Clear["Global`*"]
  2. reg = ListLinePlot[
  3.   Table[{3 Cos[t]/5 + 2 Cos[3 t/2]/5,
  4.     3 Sin[t]/5 - 2 Sin[3 t/2]/5}, {t, 0, 4 Pi, 0.001}], Filling -> 0,
  5.   AspectRatio -> Automatic]
  6. Cases[Normal@reg, _Polygon, -1] // RegionUnion // Area
  7. 12/5 ArcTan[Sqrt[
  8.     265 + 118 Sqrt[5] - 2 Sqrt[30 (1165 + 521 Sqrt[5])]]] - (
  9.   3 Sqrt[15])/160 // N
复制代码

TOP

[tikz]
\begin{tikzpicture}[>=latex,line width=1pt,x=4cm,y=4cm]
\draw[->] (-1.5,0)--(1.5,0) node[right] {$x$};
\draw[->] (0,-1.5)
node[below=10pt] {$\displaystyle S=\frac{12}{5}\arctan\left[\sqrt{265+118 \sqrt{5}-2 \sqrt{30\left(1165+521 \sqrt{5}\right)}}\,\right]-\frac{3 \sqrt{15}}{160}$}
--(0,1.5) node[above] {$y$};
\filldraw[draw=red,fill=red!50,fill opacity=0.5]
(1,0) \foreach \i in {0,...,4} {
-- plot[domain={\i*144}:{\i*144+144},smooth] ({3/5*cos(\x)+2/5*cos(3*\x/2)},{3/5*sin(\x)-2/5*sin(3*\x/2)})
};
\node[red,below left] at (-0.8,-0.6) {$\left\{\begin{aligned}
x&=\frac35\cos(t)+\frac25\cos\left(\frac{3t}{2}\right)\\
y&=\frac35\sin(t)-\frac25\sin\left(\frac{3t}{2}\right)
\end{aligned}\right.$};
\fill[blue] ({(1+sqrt(5))/16},{(1+sqrt(5))/16*tan(pi/5 r)}) circle (2pt)
node[above right] {$\displaystyle \left(\frac{1+\sqrt5}{16}, \frac{1+\sqrt5}{16}\tan\frac\pi5\right)$};
\end{tikzpicture}
[/tikz]

TOP

回复 3# kuing


太尖了,要是小一点,或孤向外不能好看些

TOP

回复 4# isee

还在调试中,刚才你看到太尖应该是我只用了 fill 的时候,现在用 filldraw,填充的浅色些且有透明度。

TOP

本帖最后由 isee 于 2021-12-25 00:19 编辑

回复 5# kuing

嗯好一点了

PS: TiKZ 加载还挺快的

TOP

回复 6# isee

现在用的并不是tikzjax[小纠结]

TOP

回复 7# 爪机专用

TOP

[i=s] 本帖最后由 hbghlyj 于 2021-12-25 13:06 编辑 [/i] 用tikzjax运行3#的代码,显示 LaTeX Error: Environment aligned undefined.然后我把aligned改成了array,并把&号去掉,公式显示仍不正常.然后我把公式删掉了,只留下那个曲线,就正常了.
奇怪了,前几天不会遇到的跨域问题,现在又出来了??
现在好像仅当打开着inspector时才不会出现跨域问题,太奇怪了...

下面是我这边生成的svg:
x y

TOP

下面是香蕉空间由3#代码生成的svg:
█░█ █▄▄ █▀▀ █░█ █░░ █▄█ ░░█
█▀█ █▄█ █▄█ █▀█ █▄▄ ░█░ █▄█

TOP

本帖最后由 hbghlyj 于 2021-12-25 17:52 编辑

就是到香蕉空间的首页的编辑页把3#的代码粘贴进去,点击显示预览就得到了.
它的原理应该和upmath差不多,但是编辑器更好看一些(在GitHub上有tikz2svg的后台的代码,是用Node.js写成的).
类似的将tikz转换为svg的app有:
https://github.com/FlorianRappl/tikz.js/
https://github.com/Ximik/tex2svg/

TOP

里面的“曲边五边形”可以用如下代码验算
  1. u = 4 ArcTan[
  2.     Sqrt[265 + 118 Sqrt[5] - 2 Sqrt[30 (1165 + 521 Sqrt[5])]]];
  3. v = 4 ArcTan[
  4.     Sqrt[265 - 118 Sqrt[5] - 2 Sqrt[30 (1165 - 521 Sqrt[5])]]];
  5. rega = ListLinePlot[{Reverse[
  6.     Table[{3 Cos[t]/5 + 2 Cos[3 t/2]/5,
  7.       3 Sin[t]/5 - 2 Sin[3 t/2]/5}, {t, u, v, 0.0001}]],
  8.    Flatten[{Table[{t, -Tan[2 Pi/5] t}, {t, (1 - Sqrt[5])/16, 0.001,
  9.        0.0001}],
  10.      Table[{t, Tan[Pi/5] t}, {t, 0, (1 + Sqrt[5])/16, 0.01}]}, 1] },
  11.   Filling -> {1 -> {2}}, AspectRatio -> Automatic]

  12. Sx = Cases[Normal@rega, _Polygon, -1] // RegionUnion // Area
  13. Swbx = 5*Sx
  14. (6 \[Pi])/
  15.   25 - (12/5 ArcTan[
  16.       Sqrt[265 + 118 Sqrt[5] -
  17.         2 Sqrt[30 (1165 + 521 Sqrt[5])]]] - (3 Sqrt[15])/160) // N
复制代码

TOP

回复 2# 青青子衿

我得出一个更简洁的面积表达式:

首先为方便起见,将 1# 的参数方程作置换 `t\to2t`,即
\[
\led
x&=\frac35\cos2t+\frac25\cos3t,\\
y&=\frac35\sin2t-\frac25\sin3t,
\endled
\quad t\in[0,2\pi],
\]
如果将它转化为极坐标,那就有
\begin{align*}
\tan\theta&=\frac{3\sin2t-2\sin3t}{3\cos2t+2\cos3t},\\
\rho^2&=\frac{(3\cos2t+2\cos3t)^2+(3\sin2t-2\sin3t)^2}{25},
\end{align*}

\[
\frac{\rmd\theta}{\rmd t}=\frac{\rmd}{\rmd t}\left( \arctan\frac{3\sin2t-2\sin3t}{3\cos2t+2\cos3t} \right),
\]
因为
\[
\left( \arctan\frac{f(x)}{g(x)} \right)'=\frac{f'(x)g(x)-g'(x)f(x)}{f(x)^2+g(x)^2},
\]

\begin{align*}
\frac{\rmd\theta}{\rmd t}
&=\frac{6(\cos2t-\cos3t)(3\cos2t+2\cos3t)+6(\sin2t+\sin3t)(3\sin2t-2\sin3t)}{(3\cos2t+2\cos3t)^2+(3\sin2t-2\sin3t)^2}\\
&=\frac6{25}\cdot\frac{1-\cos5t}{\rho^2},
\end{align*}
(化出来的式子如此简洁,相信有更简单的推导方法或直观解释)
现在,考虑曲线与原点的连线构成的面积 `S`,则有
\[
\rmd S=\frac12\rho^2\rmd\theta=\frac3{25}(1-\cos5t)\rmd t,
\]
[tikz]\begin{tikzpicture}[>=latex,line width=1pt,x=4cm,y=4cm]
\draw[->] (-1.2,0)--(1.2,0) node[below] {$x$};
\draw[->] (0,-1)--(0,1) node[left] {$y$};
\filldraw[draw=red,fill=red!50,fill opacity=0.5]
(1,0) \foreach \i in {0,...,4} {
-- plot[domain={\i*72}:{\i*72+72},smooth]
({3/5*cos(2*\x)+2/5*cos(3*\x)},{3/5*sin(2*\x)-2/5*sin(3*\x)})
};
\node[red,below] at (-0.8,-0.6) {$\left\{\begin{aligned}
x&=\frac35\cos2t+\frac25\cos3t,\\
y&=\frac35\sin2t-\frac25\sin3t,
\end{aligned}\right.\quad t\in[0,2\pi]$};
\fill[blue] ({(1+sqrt(5))/16},{(1+sqrt(5))/16*tan(pi/5 r)}) circle (3pt)
node[above right] {$t_b$}
;
\fill[blue,fill opacity=0.5] plot[domain=0:32.5,smooth]
({3/5*cos(2*\x)+2/5*cos(3*\x)},{3/5*sin(2*\x)-2/5*sin(3*\x)})
--(0,0);
\fill[green,rotate=144] ({(1+sqrt(5))/16},{(1+sqrt(5))/16*tan(pi/5 r)}) circle (3pt);
\end{tikzpicture}[/tikz]

记上图蓝色交点处对应的 `t` 的值为 `t_b`,蓝色部分区域面积为 `S_b`,则
\[
S_b=\frac3{25}\int_0^{t_b}(1-\cos5t)\rmd t=\frac3{25}t_b-\frac3{125}\sin5t_b,
\]
所以只要求出 `t_b` 即可。

为求 `t_b`,先求图中绿点处对应的 `t`,令 `y=0`,即
\[3\sin2t-2\sin3t=0,\]
分解为
\[2\sin t(1-\cos t)(1+4\cos t)=0,\]
解得几个 `t` 为
\[t_1=0,t_2=\pi-\arccos\frac14,t_3=\pi,t_4=2\pi-t_2,\]
这里 `t_1` 为最右边那个尖,`t_2` 就是绿点的了,而且是由左上往右下走的那条边的交点(`t_4` 是另一条)。

由图形的对称性,蓝点 与 最右边的尖点 对应的 `t` 的差 等于 绿点 与 左上尖点 对应的 `t` 的差,而左上尖点的 `t` 显然为 `2\pi/5`,故 `t_b-0=t_2-2\pi/5`,所以
\[
t_b=\frac35\pi-\arccos\frac14,
\]
代回 `S_b` 中,即
\[
S_b=\frac9{125}\pi-\frac3{25}\arccos\frac14-\frac3{125}\sin\left( 5\arccos\frac14 \right),
\]
因为
\[\sin5x=\sin x(5-20\sin^2x+16\sin^4x),\]
且 `\sin\left( \arccos\frac14 \right)=\frac{\sqrt{15}}4`,代入化简即得
\[
\sin\left( 5\arccos\frac14 \right)=\frac{5\sqrt{15}}{64},
\]
所以
\[
S_b=\frac9{125}\pi-\frac3{25}\arccos\frac14-\frac{3\sqrt{15}}{1600},
\]
由对称性,整个五尖瓣线的面积(非重叠)就是它的十倍,因此最终结果为
\[
\bbox[#CFF,15px]{
\frac{18}{25}\pi-\frac65\arccos\frac14-\frac{3\sqrt{15}}{160}.
}
\]

TOP

回复 13# kuing


    6666

TOP

本帖最后由 青青子衿 于 2022-1-3 10:23 编辑
我得出一个更简洁的面积表达式:

\[\bbox[#CFF,15px]{
\frac{18}{25}\pi-\frac65\arccos\frac14-\frac{3\sqrt{15}}{160}.
}\]

kuing 发表于 2021-12-31 01:16




\[\frac{3}{5}\pi-\arccos\frac14=2\arctan\left[\sqrt{265+118 \sqrt{5}-2 \sqrt{30\left(1165+521 \sqrt{5}\right)}}\,\right]\]

TOP

返回列表 回复 发帖