使用 TikZ/Pstricks 实现真实射影平面

使用 TikZ/Pstricks 实现真实射影平面

我不知道如何绘制实射影平面,$\mathbb{RP}^2$ — or $\mathbb{P}^2 \bigl(\mathbb{R}\bigr)$如果你喜欢的话——在LaTeX,使用TikZPstricks。我想获得这些图形 1、2、3 中的一个此网站来自 Wikipedia,请参阅 Cross–capped Disk,也就是照片里的这些人像。

射影平面

第一次编辑:黑米尔德的提示,我尝试创建这些拓扑流形。我实现了照片第一个投影平面的参数方程,但结果完全错误!我不知道为什么。而且我不知道第二个的参数方程。最后我很好地实现了第三个。能帮我吗?谢谢。我的代码

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.8}
\usepackage{url}

\begin{document}

\begin{center}
\begin{tikzpicture}
\begin{axis}[hide axis, view = {60}{30}]
\addplot3[surf, colormap/redyellow, shader = faceted interp, point meta = x, samples = 40, samples y = 5, z buffer = sort, domain = 0:360, y domain = 0:360]
({2*(1+cos(y))*cos(x)}, {2*(1+cos(y))*sin(x)}, {-2*tanh(x-pi)*sin(y)});
\end{axis}
\end{tikzpicture}
\end{center}

\end{document}

答案1

使用 非常容易pstricks。以下是第一个图的代码:

    \documentclass[svgnames, pstricks, border=16pt]{standalone}
    \usepackage{pst-node}

    \begin{document}

    \psset{unit=1cm} 
    \begin{pspicture}(0,0)(2,2)
    \pnodes(0,0){O}(0,2){P}(2,2){Q}(2,0){R}
    \psframe[fillstyle=solid, fillcolor=Gainsboro, linewidth=0pt](O)(Q)
    \psset{arrows=->, arrowinset=0.12, linecolor=blue, labelsep=1pt}
    \ncline{O}{P}\nbput{B}\ncline{Q}{R}\nbput{B}
    \psset{linecolor=red}
    \ncline{P}{Q}\nbput{A}\ncline{R}{O}\nbput{A}
    \end{pspicture}

    \end{document} 

在此处输入图片描述

答案2

我建议用 Asymptote 来解决这些问题3D 图形。代码改编自黎曼曲面在那个画廊里。

在此处输入图片描述

// Run on http://asymptote.ualberta.ca/
// (can rotate with mouse)
import graph3;
import palette;

size(200,300,keepAspect=false);

currentprojection=orthographic(10,10,20,zoom=.9);
currentlight=(10,10,5);
real r=3;
triple f(pair M) {return 
(r*M.y*cos(2*M.x),r*M.y*sin(2*M.x),r*M.y*cos(M.x));
}

surface s=surface(f,(0,0),(2pi,1),8,16,Spline);
s.colors(palette(s.map(zpart),Rainbow()));
draw(s,render(merge=true));

相关内容