## 编译环境 操作系统 * [ ] Windows 7/8/10 * [x] macOS * [ ] Linux `若需勾选,请把[ ]改成[x]` Tex发行版 * [x] TexLive `年份` * [ ] MikTeX `版本号` * [ ] CTeX `若需勾选,请把[ ]改成[x]` ## 我的问题 在已知一个球体表面4个点的情况下,如何对这4个点之间的球面部分进行颜色的填充呢? 不太清楚\fill的参数要怎么设置,或者使用其他的命令?

1 回答1

2
可以用 tikz-3dplot 宏包,下面的MWE 是借鉴的网上的一段代码,稍微删改了一下加了点备注,原链接找不到了就不贴了。 ``` \documentclass[tikz,border=3.14mm]{standalone} \usepackage{tikz-3dplot} \usetikzlibrary{patterns,backgrounds} \begin{document} \tdplotsetmaincoords{70}{20} %定义图像朝向,默认是x轴水平向右,y轴竖直向上,z轴与画面(电脑桌面)垂直。 %其中70表示,竖直方向(向上)旋转70° %20表示,水平方向(顺时针)旋转20° \begin{tikzpicture}[tdplot_main_coords,declare function={R=pi;}] % 使用tdplot_main_coords 样式,定义系数R 赋值 pi(可以是具体数值) \shade[tdplot_screen_coords,ball color=gray,opacity=0.5] (0,0) coordinate(O) circle[radius=R]; % 画球,定义记为 O 点 坐标(0,0) \draw[blue,pattern=dots,pattern color=blue] plot[variable=\x,domain=90:0,smooth] (0,{-R*sin(\x)},{R*cos(\x)}) coordinate (p1) -- plot[variable=\x,domain=0:90,smooth] ({R*sin(\x)},0,{R*cos(\x)}) coordinate (p2) -- plot[variable=\x,domain=0:90,smooth] ({R*cos(\x)},{-R*sin(\x)},0) coordinate (p3); % 画阴影部分,使用pattern 选择dots 样式, % 想填充纯色的画用fill % 这个部分需要自己找边界曲线函数, \begin{scope}[on background layer] \foreach \X in {1,2,3} { \draw[dashed] (O) -- (p\X); } \end{scope} \end{tikzpicture} \end{document} ``` 不知道是不是你想要的 ![](https://wenda.latexstudio.net/data/attach/200719/uuIOy4HC.png)
  • 回复 洣轲,GO! : 我都是刊 宏包说明不知道有什么书,,你可以再电脑运行窗口输入texdoc tikz查看tikz红包说明,texdoc tikz-3dplot 查看三维图的红包说明 – joefsong 2020-07-22 15:05 回复
  • 感谢您的回答,请问有没有tikz的书或者教程可以推荐呢?再次万分感谢 – 洣轲,GO! 2020-07-21 09:52 回复
  • 非常感谢! – 洣轲,GO! 2020-07-21 09:51 回复

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。