如何使用 Tikz 为电影《黑客帝国》中不断变化的单色电脑屏幕制作动画?

如何使用 Tikz 为电影《黑客帝国》中不断变化的单色电脑屏幕制作动画?
\documentclass[11pt]{article}
\usepackage{CJKutf8}
\usepackage{tikz}
\usepackage{ifthen}
\usetikzlibrary{backgrounds,calc}
\definecolor{mybackground}{rgb}{0,0,0}
\definecolor{mygreen}{RGB}{21,138,12}
\definecolor{white}{RGB}{255,255,255}
\def\myopacity{0} %From 0 to 1 
\def\ncol{40}
\def\nrow{80}
\begin{document}
\begin{tikzpicture}[remember picture,overlay,show background rectangle, 
  background rectangle/.style={fill=mybackground},color=mygreen,align=center]

\pgfmathsetseed{1}
\pgfmathsetmacro{\ncolEND}{\ncol-1}
\pgfmathsetmacro{\nrowEND}{\nrow-1}
\pgfmathdeclarerandomlist{letters}{%
{\begin{CJK}{UTF8}{min} リ \end{CJK}}
{\begin{CJK}{UTF8}{min} ス \end{CJK}}
{\begin{CJK}{UTF8}{min} ト \end{CJK}}
{\begin{CJK}{UTF8}{min} は \end{CJK}}
{\begin{CJK}{UTF8}{min} 集 \end{CJK}}
{\begin{CJK}{UTF8}{min} よ \end{CJK}}
{\begin{CJK}{UTF8}{min} く \end{CJK}}
{\begin{CJK}{UTF8}{min} あ \end{CJK}}
{\begin{CJK}{UTF8}{min} る \end{CJK}}
{\begin{CJK}{UTF8}{min} 質 \end{CJK}}
{\begin{CJK}{UTF8}{min} 問 \end{CJK}}
{\begin{CJK}{UTF8}{min} と \end{CJK}}
{\begin{CJK}{UTF8}{min} そ \end{CJK}}
{\begin{CJK}{UTF8}{min} の \end{CJK}}
{\begin{CJK}{UTF8}{min} 答 \end{CJK}}
{\begin{CJK}{UTF8}{min} を \end{CJK}}
{\begin{CJK}{UTF8}{min} 集 \end{CJK}}
{\begin{CJK}{UTF8}{min} め \end{CJK}}
{\begin{CJK}{UTF8}{min} 役 \end{CJK}}
{\begin{CJK}{UTF8}{min} に \end{CJK}}
{\begin{CJK}{UTF8}{min} 立 \end{CJK}}
{\begin{CJK}{UTF8}{min} つ \end{CJK}}
{\begin{CJK}{UTF8}{min} よ \end{CJK}}
{\begin{CJK}{UTF8}{min} う \end{CJK}}
{\begin{CJK}{UTF8}{min} し \end{CJK}}
{\begin{CJK}{UTF8}{min} た \end{CJK}}
{\begin{CJK}{UTF8}{min} も \end{CJK}}
{\begin{CJK}{UTF8}{min} も \end{CJK}}
{\begin{CJK}{UTF8}{min} の \end{CJK}}
{\begin{CJK}{UTF8}{min} で \end{CJK}}
{\begin{CJK}{UTF8}{min} す \end{CJK}}
{\begin{CJK}{UTF8}{min} 大 \end{CJK}}
{\begin{CJK}{UTF8}{min} こ \end{CJK}}
%Some voids to get sparse sequences
{}{}{}{}{}{}{}{}{}{}{}{}{}{}
%Mirrored numbers 
{\reflectbox{\textsf{2}}}
{\reflectbox{\textsf{7}}}
{\reflectbox{\textsf{4}}}
{\reflectbox{\textsf{3}}}
{\reflectbox{\textsf{5}}}
{\reflectbox{\textsf{6}}}
{\reflectbox{\textsf{8}}}
{\reflectbox{\textsf{9}}}
}%
\pgfmathsetmacro{\maxcodelength}{\nrow-15}
\foreach \col in {1,...,\ncolEND}{
\pgfmathrandominteger{\codelength}{2}{\maxcodelength} 
\pgfmathrandominteger{\FLAG}{1}{20}
\pgfmathrandominteger{\Highlight}{1}{20} 
\ifthenelse{\FLAG<11}{%
    \pgfmathrandomitem{\letter}{letters}
    %the next 3 lines are to highlight the bottom symbol of the sequence
    \ifthenelse{\Highlight<17}{%
    \node [mygreen!60!white] at ($(current page.south west)+({\paperwidth/\ncol*\col},{\paperheight/\nrow*(\codelength-1)})$) {\letter};}{%
    \node at ($(current page.south west)+({\paperwidth/\ncol*\col},{\paperheight/\nrow*(\codelength-1)})$) {\letter};}
\foreach \i in {\codelength,...,\nrowEND}{%else
    \pgfmathrandomitem{\letter}{letters}
    \node at ($(current page.south west)+(\paperwidth/\ncol*\col,\paperheight/\nrow*\i)$) {\letter};}}{%
\foreach  \i in {1,...,\codelength}{%
    \pgfmathrandomitem{\letter}{letters}
    \node at ($(current page.south west)+(\paperwidth/\ncol*\col,\paperheight/\nrow*\i)$) {\letter};}}
}
\fill [draw=none, fill=white, fill opacity=\myopacity] (current page.south west)--(current page.north west)--(current page.north east)--(current page.south east)--cycle;
\end{tikzpicture}
\thispagestyle{empty}
\begin{center}
\Huge\texttt{\textcolor{white}{Thank you}}
\end{center}

\newpage
Another page
\end{document}

生产

在此处输入图片描述

如何为《黑客帝国》背景制作动画,使文本像电影《黑客帝国》中那样变化?

我猜你会循环播放当前的日文字符或让它们以伪随机顺序播放。

最后,是否可以将 tikz 动画放入 html 或将其转换为 gif?我想使用矩阵 tikz 动画制作一个网站。

答案1

这是一个 MWE。

颜色和不透明度是你的职责。

% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = xelatex

\documentclass[tikz]{standalone}

\def\PMS{\pgfmathsetmacro}

\usepackage{fontspec}
    \setmainfont{PingFang TC}
    \def\fontA{\fontspec{Lantinghei TC Extralight}}
    \def\fontB{\fontA[Renderer=AAT,Vertical=RotatedGlyphs]}

\begin{document}

\newcount\corpuscount
\def\readcorpus#1 {%
    \advance\corpuscount by 1\relax
    \pgfkeys{/corpus/\the\corpuscount/.initial=#1}%
}

\readcorpus 王若曰父瘖丕顯文武皇天引厭厥德配我有周膺受大命率懷不廷方
\readcorpus 亡不閈于文武耿光唯天將集厥命亦唯先正略又劂䢃屬謹大命肆皇
\readcorpus 天亡斁臨保我有周丕鞏先王配命旻天疾威司余小子弗彶邦將曷吉
\readcorpus 跡跡四方大縱不靜烏乎

相关内容