有什么更好的方法来生成伊津64卦?

有什么更好的方法来生成伊津64卦?

如果我有以下八卦列表,那么生成 64 个卦的最佳方法是什么,如附图所示?我可以使用二进制代码(例如 {1,1,1})进行颜色编码,也可以绘制受启发的八卦这里或者使用unicode这里嵌套 for 循环是正确的方法吗?这可能要求太高了。

{1,1,1}; 乾; 8;  ☰
{1,1,0}; 兌; 7;  ☱
{1,0,1}; 離; 6;  ☲
{1,0,0}; 震; 5;  ☳
{0,0,0}; 坤; 1;  ☷
{0,0,1}; 艮; 2;  ☶
{0,1,0}; 坎; 3;  ☵
{0,1,1}; 巽; 4;  ☴

在此处输入图片描述

答案1

我提前为无法使用这些字符道歉。所以我假设您知道如何使用它们(以及它们的含义)。这个答案只是创建了一个拉丁字符和阿拉伯数字的数组。因此,您可能需要根据\lstchar自己的需要重新定义。

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
  \def\lstchar{{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", 
 "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", 
 "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", 
 "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", 
 "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", 
 "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", 
 "8", "9", "+", "-"}}
  \foreach \Z [evaluate=\Z as \Y using {int(\Z/8)},
  evaluate=\Z as \X using {int(mod(\Z,8))}] 
  in {0,1,2,...,63}
 {
 \pgfmathtruncatemacro{\x}{mod(\Z,4)*255/3}
 \pgfmathtruncatemacro{\y}{mod(int(\Z/4),4)*255/3}
 \pgfmathtruncatemacro{\z}{mod(int(\Z/16),4)*255/3}
 \pgfmathsetmacro{\char}{\lstchar[\Z]}
 \definecolor{mycolor\Z}{RGB}{\z,\y,\x}
 \node[color=mycolor\Z,rotate={\Z*(360/64)-90},scale=1.5] at ({\Z*(360/64)}:7) {\char};
 \node[color=mycolor\Z,scale=1.5] at (\X-4+0.5,4-\Y-0.5) {\char};
 }
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容