日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tikz作图教程:说说图形颜色填充那些事儿

發(fā)布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tikz作图教程:说说图形颜色填充那些事儿 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

初學Tikz 作圖的朋友也許覺得給圖形填充顏色很費事兒,尤其是那些不規(guī)則圖形的顏色填充。

事實上,只要你掌握一個基本思想和三個填充技巧,圖形顏色填充就會變得易如反掌!下面我們詳細介紹這些方法,學會本文中的各個例子,再復雜的顏色填充問題都不在話下了!

本文較長,需要的朋友可以收藏備查!

基本思想

由曲線段(折線段)首尾相連得到的封閉圖形都可以通過命令\filldraw[fill=<color>]將它填充為設定的顏色<color>。

值得注意的是,如果折線段(曲線段)的起點和終點沒有連起來,使用上述命令填充顏色時, Tikz會自動將起點和終點用線段連結從而將其封閉,然后用設定的顏色填充。例如,一段圓弧使用上述命令時,填充以后得到一個弓形。

下面的例子,就是用這種基本思想實現(xiàn)的。

初學者掌握這個基本思想,就可以應付一些簡單圖形的顏色填充了。

如果需要對一些復雜的不規(guī)則圖形進行填充則需要學習下面的三大填充技巧。

填充技巧一:剪裁(clip)

命令\clip 顧名思義就是“剪裁”的意思,它和\draw的區(qū)別就是:它不畫出后面的路徑,而是用這個路徑對后面的作圖進行剪裁。

說得通俗一點,例如\clip(-1,-1)rectangle(1,1)就是剪出一塊正方形的畫布,后面所有的作圖命令作出的圖形將只顯示這個正方形內部的部分。

注意:

  • 如果要畫出剪裁的路徑可以在命令\clip后面添加draw選項,例如,
    \clip[draw](-1,-1)rectangle(1,1)。
  • 如果希望剪裁命令只是作用在某個局部,那么使用scope環(huán)境將它們包裹起來。

下面的例子給我們直觀地顯示\clip命令的效果:

\begin{tikzpicture}\draw[fill=blue02,opacity=0.9](-1,-1)rectangle(1,1);\draw[fill=red01,opacity=0.9](-1,0)circle(1);\begin{scope}\clip[draw](3,-1)rectangle(5,1);\draw[fill=red01,opacity=0.9](3,0)circle(1);\end{scope}\begin{scope}\clip[draw](8,0)circle(1);\draw[fill=blue02,opacity=0.9](8,-1)rectangle(10,1);\end{scope} \end{tikzpicture}

圖形:

例1

\begin{tikzpicture} \begin{scope}\clip(0,-1)circle(1);\draw [draw=gray,fill=red!30](-1,-1)arc(-90:0:1)--(-1,0)--cycle;\draw[draw=gray,fill=red!30](0,0)arc(180:270:1)--(1,0)--cycle; \end{scope} \begin{scope}[rotate=180]\clip(0,-1)circle(1);\draw [draw=gray,fill=red!30](-1,-1)arc(-90:0:1)--(-1,0)--cycle;\draw[draw=gray,fill=red!30](0,0)arc(180:270:1)--(1,0)--cycle; \end{scope} \clip[draw](-1,-1)rectangle(1,1); \draw[gray](0,-1)circle(1)(0,1)circle(1); \end{tikzpicture}

圖形:

填充技巧二:奇偶性法則(even odd rule)

奇偶性法則是顏色填充的黃金法則。妙用奇偶性法則可以大大簡化作圖代碼。

奇偶性法則:使用\filldraw[fill=<color>,even odd rule]命令作圖時,如果選項里有even odd rule, 那么

當幾條路徑有重疊時,那么重疊部分屬于奇數(shù)條路經時將被著色,重疊部分屬于偶數(shù)條路經時將不被著色。

一個簡單容易理解的例子如下:

例2

\begin{tikzpicture}[scale=1, pattern1/.style={draw=red,pattern color=red!60,pattern=north east lines}, ] \filldraw[thick,pattern1,even odd rule](0,0)circle(1.5 cm)(2,0)circle(1.5 cm); \end{tikzpicture}

圖形:

例3 用奇偶性法則重畫例1.

\begin{tikzpicture}\filldraw[fill=orange!30,even odd rule](-1,-1)rectangle(1,1)(-1,-1)rectangle(1,1)(0,0)arc(0:-90:1)arc(180:90:1)arc(180:270:1)arc(0:90:1)arc(180:90:1)arc(360:270:1)arc(0:90:1)arc(180:270:1); \end{tikzpicture}

圖形:

例4 太極圖

\begin{tikzpicture}\filldraw [draw=black,fill=black, even odd rule](2,0)arc[radius=2cm,start angle=0,end angle=180](0,0)arc[radius=1cm,start angle=0,end angle=180](0,0)arc[radius=1cm,start angle=180,end angle=360](1,0)circle(5pt);\draw(0,0)circle(2cm);\draw[fill=black](-1,0)circle(5pt); \end{tikzpicture}

圖形:

填充技巧三:圖層(layer)

圖層的技巧很容易理解,后畫的圖形著色將覆蓋先畫的圖形的著色。利用這種特點可以非常方便地實現(xiàn)不規(guī)則圖形的顏色填充。

如果要使重疊區(qū)域的幾種顏色混合,可以設置填充顏色的透明度:例如設置opacity=0.6,那么重疊區(qū)域的顏色將以混合后的顏色顯示。

例5

\tikzset{help line/.style={gray,thin},every path/.style={draw}}\begin{tikzpicture}%\draw[help line](-2.5,-2.5)grid(2.5,2.5); % \draw(-2.5,0)--(2.5,0)(0,-2.5)--(0,2.5);\draw[fill=red01,opacity=0.8](-1.3,0)circle(1.8);\draw[fill=blue03,opacity=0.8](1.3,0)circle(1.8);\draw[fill=blue02,opacity=0.8](0,1.3)circle(1.8);\draw[fill=yellow01,opacity=0.8](0,-1.3)circle(1.8);\node at (-2.2,0){\color{white}1};\node at (-1,1){\color{white}2};\node at (0,2){\color{white}3};\node at (1,1){\color{white}4};\node at (2.2,0){\color{white}5};\node at (0,0.8){\color{white}6};\node at (-0.8,0){\color{white}7};\node at (0,0){\color{white}8};\node at (0.8,0){\color{white}9};\node at (1,-1){\color{white}10};\node at (0,-0.8){\color{white}11};\node at (-1,-1){\color{white}12};\node at (0,-2){\color{white}13}; \end{tikzpicture}

圖形:

例6

\begin{tikzpicture}[every path/.style={draw}]%\draw[help line] (-5,-5)grid(5,5); % \draw (-5,0)--(5,0)(0,-5)--(0,5);\begin{scope}[rotate=45]\draw[fill=pink01,opacity=0.8](0,0)ellipse[x radius=2,y radius=1];\draw[fill=green01,opacity=0.8](-0.3,1)ellipse[x radius=1.9,y radius=0.8];\end{scope}\begin{scope}\draw[rotate around={135:(-2,0)},fill=green02,opacity=0.6](-2,0)ellipse[x radius=2,y radius=1];\draw[rotate around={135:(-2,0)},fill=blue01,opacity=0.6](-2.3,-1)ellipse[x radius=1.9,y radius=0.8]; \end{scope}\node at (-1.6,1.3){1}; \node at (-1,1){2}; \node at (-0.4,1.3){3}; \node at (-2,0.8){4}; \node at (-1.5,0.5){5}; \node at (-1,-0.2){6}; \node at (-0.5,0.5){7}; \node at (0,0.8){8}; \node at (0.8,0.5){9}; \node at (0,-0.5){10}; \node at (-1,-1.2){11}; \node at (-1.9,-0.5){12}; \node at (-2.8,0.5){13}; \end{tikzpicture}

圖形:

填充技巧四:以圖案填充(patterns)

在作一些與面積有關的平面圖形以及在畫表示集合的交、并、補等關系的韋恩圖時,常常使用斜線填充某些部分,這是用圖案填充的例子。利用Tikz預定義好的幾十種圖案可以非常方便的實現(xiàn)圖案填充。

使用圖案填充的要點有:

  • 使用圖案填充時,要調用patters庫,就是在導言區(qū)添加下面的語句:
    \usetikzlibrary{patterns}.
  • 選用某種圖案:pattern=<name>
  • 設置圖案顏色:pattern color=<color>
  • 常見的圖案選項有:
名稱形狀
horizontal lines水平線
vertical lines豎直線
north east lines右上-左下斜線
north west lines左上-右下斜線
grid水平格子
crosshatch傾斜格子
dots水平點
crosshatch dots斜點
fivepointed stars五角星
sixpointed stars六角星
bricks磚形
checkerboard棋盤形狀

例7 斜線填充例1中的圖形

\begin{tikzpicture}\filldraw[pattern color=red!30,pattern=,even odd rule](-1,-1)rectangle(1,1)(-1,-1)rectangle(1,1)(0,0)arc(0:-90:1)arc(180:90:1)arc(180:270:1)arc(0:90:1)arc(180:90:1)arc(360:270:1)arc(0:90:1)arc(180:270:1); \end{tikzpicture}

圖形:

例8 磚形圖案填充

本例來自pgfmanual說明文檔。

\begin{tikzpicture} \def\mypath{(0,0) -- +(0,1) arc (180:0:1.5cm) -- +(0,-1)} \fill [red!80!black] \mypath; \pattern[pattern color=white,pattern=bricks] \mypath; \end{tikzpicture}

圖形:

填充技巧五:以漸變色填充(shade)

使用漸變色填充的兩個基本命令是\shade和\shadedraw, 兩者的區(qū)別是前者只用漸變色填充而不畫出路徑(輪廓),后者是先填充然后畫出路徑(輪廓)。

使用漸變填充也要先調用庫文件,即在導言區(qū)添加命令:\usetikzlibrary{shadings}。

常用的漸變填充有下面四種:

  • (1)線性axis
  • (2)輻射:radical
  • (3) 球形:ball
  • (4) 色輪:colorwheel

前三種默認填充顏色都是“灰-白”漸變,線性填充默認為從上到下漸變。

其它填充選項見下表:

例9 漸變色填充舉例

本例來自pgfmanual說明文檔。

\begin{tikzpicture}\draw[top color=red] (0,0) rectangle (2,1);\draw[bottom color=red] (3,0) rectangle (5,1);\draw[middle color=red] (6,0) rectangle (8,1);\draw[left color=red] (9,0) rectangle (11,1);\draw[right color=red] (12,0) rectangle (14,1);\draw[inner color=red] (0,-2) rectangle (2,-1);\draw[outer color=red] (3,-2) rectangle (5,-1);\shade[shading=color wheel black center](7,-2)circle(1.5);\shade[shading=color wheel white center](10.5,-2)circle(1.5); \end{tikzpicture}

圖形:

今天的介紹就到這里,喜歡的話歡迎點贊、留言和分享,謝謝啦!

【LaTeX微信交流加群:】

如果你希望交流 LaTeX 使用或者Tikz 作圖或者Beamer制作幻燈片方面的問題,請先添加作者微信:niltxz,然后加入作者的LaTeX+TikZ+Beamer 交流微信群。

總結

以上是生活随笔為你收集整理的Tikz作图教程:说说图形颜色填充那些事儿的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。