
The iterated function system (IFS) is important in different fields like image compression. An important feature of such systems is that they can be used to generate fractals. Yet, for the obtained fractals, it is difficult to locally control them to generate new ones with desired structures at specific places. In this paper, we gave an attempt to solve this problem based on a nonuniform multiple function system. For this, we first analyzed the multiple function systems needed in the generation of the final desired fractals. Based on such analysis, the final fractals with desired structures at specific places can be generated using the nonuniform multiple function system. Moreover, these two procedures were summarized into two algorithms for convenience. Examples were also given to illustrate the performance of the nonuniform multiple function system and the two algorithms in this paper.
Citation: Baoxing Zhang, Yunkun Zhang, Yuanyuan Xie. Generating irregular fractals based on iterated function systems[J]. AIMS Mathematics, 2024, 9(5): 13346-13357. doi: 10.3934/math.2024651
[1] | Martin Do Pham . Fractal approximation of chaos game representations using recurrent iterated function systems. AIMS Mathematics, 2019, 5(6): 1824-1840. doi: 10.3934/math.2019.6.1824 |
[2] | Tunçar Şahan, Yunus Atalan . Novel escape criteria for complex-valued hyperbolic functions through a fixed point iteration method. AIMS Mathematics, 2025, 10(1): 1529-1554. doi: 10.3934/math.2025071 |
[3] | Yuki Takahashi . On iterated function systems with inverses. AIMS Mathematics, 2025, 10(4): 9034-9041. doi: 10.3934/math.2025415 |
[4] | Najmeddine Attia, Neji Saidi, Rim Amami, Rimah Amami . On the stability of Fractal interpolation functions with variable parameters. AIMS Mathematics, 2024, 9(2): 2908-2924. doi: 10.3934/math.2024143 |
[5] | Najmeddine Attia, Rim Amami . On linear transformation of generalized affine fractal interpolation function. AIMS Mathematics, 2024, 9(7): 16848-16862. doi: 10.3934/math.2024817 |
[6] | Swati Antal, Anita Tomar, Darshana J. Prajapati, Mohammad Sajid . Variants of Julia and Mandelbrot sets as fractals via Jungck-Ishikawa fixed point iteration system with s-convexity. AIMS Mathematics, 2022, 7(6): 10939-10957. doi: 10.3934/math.2022611 |
[7] | Xuezai Pan, Minggang Wang . The uniformly continuous theorem of fractal interpolation surface function and its proof. AIMS Mathematics, 2024, 9(5): 10858-10868. doi: 10.3934/math.2024529 |
[8] | Zhongxuan Yang, Xiaojun Huang, Jiajun Zhang . Topological pressures of a factor map for iterated function systems. AIMS Mathematics, 2025, 10(4): 10124-10139. doi: 10.3934/math.2025461 |
[9] | Khaled M. Saad, Manal Alqhtani . Numerical simulation of the fractal-fractional reaction diffusion equations with general nonlinear. AIMS Mathematics, 2021, 6(4): 3788-3804. doi: 10.3934/math.2021225 |
[10] | Najmeddine Attia, Taoufik Moulahi, Rim Amami, Neji Saidi . Note on fractal interpolation function with variable parameters. AIMS Mathematics, 2024, 9(2): 2584-2601. doi: 10.3934/math.2024127 |
The iterated function system (IFS) is important in different fields like image compression. An important feature of such systems is that they can be used to generate fractals. Yet, for the obtained fractals, it is difficult to locally control them to generate new ones with desired structures at specific places. In this paper, we gave an attempt to solve this problem based on a nonuniform multiple function system. For this, we first analyzed the multiple function systems needed in the generation of the final desired fractals. Based on such analysis, the final fractals with desired structures at specific places can be generated using the nonuniform multiple function system. Moreover, these two procedures were summarized into two algorithms for convenience. Examples were also given to illustrate the performance of the nonuniform multiple function system and the two algorithms in this paper.
Since Mendelbrot proposed the notion of fractals in the 1970s [1], the research about different properties and applications of fractals has been attracting scholars' attention. Two geometric properties characterizing fractals are that they are self-similar and they are attractors. Therefore, the iterated function system (IFS) is a standard framework to generate them.
In connection with the study on IFS, there have been interesting works after its appearance [2]. For example, Barnsley et al. [3,4] investigated the super IFS and recurrent IFS. Fisher et al. [5] discussed the partitioned IFS. On the other hand, subdivision is an efficient tool to generate smooth curves/surfaces and plays an important role in different applications [6]. For the connection between these two different topics, Schaefer et al. [7] showed that stationary subdivision curves/surfaces are fractals and that many standard fractals, like the Koch curve, can be obtained using subdivision rules. Later, Levin et al. [8] generalized this connection to give the connection between nonstationary subdivision and IFS. For other similar works, refer to [9,10] and the references therein.
However, none of the above works discussed how to generate fractals with desired structures at specific places. Such a problem appeared in [11] in an example showing a fractal with different structures at different locations. In fact, such fractals are irregular ones (see also [9]) and can better reflect the nature. Therefore, in this paper, we give a first attempt to solve this problem and generate fractals with desired structures at specific places. The fractals in this paper are obtained by first analyzing two kinds of multiple function systems [12] and then are generated using a kind of nonuniform multiple function system. Related works can be found in [13] and the references therein. The nonuniform multiple function system in this paper chooses different IFSs for different sets of generated points through iterations (see Section 3 for details). These corresponding procedures are summarized into two algorithms for convenience. We point out that, with the nonuniform multiple function system and the two algorithms, we can indeed generate fractals with desired structures at specific places, which can enrich the theory and applications of fractals. Examples are also given to show the performance of the new multiple function system and the two algorithms.
The rest of this paper is organized as follows. In Section 2, we give a brief review of the related works together with an overview of the method to generate the final desired fractals. Section 3 is devoted to present the new nonuniform multiple function system with the analysis of convergence. In Section 4, we discuss how to use the new nonuniform multiple function systems to generate fractals with desired structures at specific places and summarize the procedures into two corresponding algorithms. In Section 5, we give examples to illustrate the performance of the new nonuniform multiple function system and algorithms, while Section 6 concludes this paper.
In this section, we briefly review some related works and give an overview of the method to generate the final desired fractals.
Let (X,d) be a complete metric space and the function f:X→X be a contractive one, which means that the Lipschitz constant is
Lip(f):=supx,y∈X,x≠yd(f(x),f(y))d(x,y)<1. |
An IFS is a collection of contractive functions F={f1,⋯,fs}. A set X is an attractor of F if F(X)=X, where F(X)=f1(X)⋃⋯⋃fs(X). Using IFS, the fractals can be obtained as the corresponding attractors.
On the other hand, subdivision schemes can generate smooth curves/surfaces [6] and play an important role in different fields like wavelets [14] and computer-aided geometric design [15]. After Schaefer et al. [7] gave the connection between stationary subdivision and IFS, Dyn et al. [11] discussed the connection between IFS and a wider class of subdivision, like the nonuniform subdivision, and also gave the tree of maps. Similar works can be seen in [12], which generalized the trees of maps to multiple function systems and can generate different kinds of fractals.
In fact, similar to the trees of maps in [11], the multiple function systems can also be arranged in a tree structure. Let B^{[k]}: = \{\boldsymbol{\epsilon}_{k}:\boldsymbol{\epsilon}_{k} = (\epsilon_{1}\epsilon_{2}\cdots \epsilon_{k}), \epsilon_{j}\in\{1, 2\}\} = \{1, 2\}^{k} and B^{[\infty]}: = \{\boldsymbol{\epsilon}:\boldsymbol{\epsilon} = (\epsilon_{1}\epsilon_{2}\cdots \epsilon_{k}\cdots), \epsilon_{j}\in\{1, 2\}\} = \{1, 2\}^{\infty} . Let \tau_{l} be the truncation operator defined as \tau_{k}\boldsymbol{\epsilon} = {\boldsymbol{\epsilon}_{k} = (\epsilon_{1}\cdots \epsilon_{k})}\in B^{[l]} . With such notations, we give the multiple function system \mathcal{F}_{\boldsymbol{\epsilon}} = \{\mathcal{F}_{0}, \mathcal{F}_{1}\} as an example to show the corresponding tree structure as in Figure 1. Here, each \boldsymbol{\epsilon}\in B^{[\infty]} defines a path in the tree structure as in Figure 1.
Remark 1. Here, for each \boldsymbol{\epsilon}{_{k}} = (\epsilon_{1}, \cdots, \epsilon_{k})\in B^{[k]} , we have the function f_{\boldsymbol{\epsilon}_{{k}}}(\cdot) = f_{\epsilon_{k}}\circ\cdots \circ f_{\epsilon_{1}}(\cdot) .
We first point out that the contractive functions in this paper are affine transformations. The fractals with desired structures at specific places in this paper are generated using the nonuniform multiple function system.
In fact, the generation of such fractals starts from two kinds of multiple function systems: the one generating the fractal with the specific place where we hope the desired structures to locate and the one generating the fractals with the desired structures. For simplicity, we denote the fractal with the specific place by the target fractal. In fact, the 'specific places' in this paper are polygons formed with points generated by different rounds of iterations along the paths of multiple function systems, then the final fractals with desired structures at specific places means that specific polygons in the target fractal have the desired structures.
To generate such fractals, some necessary items are needed, like the paths leading to the specific polygons in the target fractal and the paths leading to the desired structures. This can be done by analyzing the above two kinds of multiple function systems (see Section 4 for details). Once the necessary items are obtained, the final desired fractal can be generated by locally controlling the structure of the specific polygons in the target fractal using the paths leading to the desired structures and the nonuniform multiple function systems (see Section 4 for details).
We also summarize the above procedures into two algorithms to obtain the final desired fractals (see Section 4 for details) for convenience. We point out that with such a nonuniform multiple function system and the given two algorithms, we can indeed locally control the structures of fractals to generate new ones with desired structures at specific places.
This section is devoted to presenting the new nonuniform multiple function system and analyzing its convergence. For this, we first review the connection between subdivision and IFS.
In fact, according to Schaefer et al. [7], based on subdivision rules, we can give a contractive function in the form
\begin{equation*} \label{eq:1} f(A) = AP^{-1}SP, \quad A\in Q^{n-1}, \end{equation*} |
where S is the corresponding n\times n subdivision matrix, Q^{n-1} is the n-1 dimensional hyperplane with points of the form (x_{1}, \cdots, x_{n-1}, 1) , and P is the n\times n matrix composed of n initial points in \mathbb{R}^{m} , with the last column {\bf{1}}_{n} being the n\times1 vector of 1 , i.e., (1, \cdots, 1)^{\top} , and the rest of the columns such that P is invertible [7]. Schaefer et al. [7] showed that such a contractive function can be rewritten as
\begin{equation*} f(A) = A \left( \begin{array}{cc} G&{\bf{0}}_{n-1}\\ {\boldsymbol{v}}&1 \end{array} \right), \end{equation*} |
where G is a (n-1)\times(n-1) matrix, {\boldsymbol{v}} is a 1\times(n-1) vector, and {\bf{0}}_{n-1} is the (n-1)\times1 vector of 0 , (0, \cdots, 0)^{\top} .
Conversely, Schaefer et al. [7] also gave a general way to convert fractals into subdivision schemes. Specifically speaking, given an IFS defined by a set of affine transformations \mathcal{F} = \{f_{1}, \cdots, f_{n}\} , we first choose a set of control points P = \{p_{1}, \cdots, p_{m}\} , then apply \mathcal{F} to the set P to get the corresponding set of points f_{i}(P) . For the vertex p_{j} in f_{i}(P) , we represent it as
\begin{equation*} p_{j} = \sum\limits_{k}\alpha_{j, k}p_{k}. \end{equation*} |
The subdivision matrix S_{i} can be constructed by setting the (j, k) entry of S_{i} to be \alpha_{j, k} , and the subdivision matrix S for this fractal is the concatenation of S_{i} .
In this way, from the IFS \mathcal{F} = \{f_{1}, \cdots, f_{n}\} , we have the new IFS \tilde{\mathcal{F}} = \{\tilde{f}_{1}, \cdots, \tilde{f}_{n}\} , with
\begin{equation} \tilde{f}_{i}(A) = AP^{-1}S_{i}P, \quad A\in Q^{n-1}. \end{equation} | (3.1) |
Remark 2. With the above connection between stationary subdivision and IFS, all the contractive functions in this paper are of the form (3.1).
Now, we give an observation of the IFS consisting of the contractive functions of the form (3.1). In fact, for some contractive function of the form (3.1), when the matrix P is changed to be P' , this function is also changed and we get a modified IFS. Here, P' is also an invertible n\times n matrix with the last column {\bf{1}}_{n} . Yet, since the final fractal is independent of the initial set [7] and the subdivision matrices are kept the same, the fractal obtained using this modified IFS is a scaled one with the same structure as the original one. Additionally, this obtained fractal is limited to the polygon formed with the points constituting the first m columns of P' . We summarize this point as follows:
Proposition 1. For the IFS with the contractive functions of the form (3.1), if the n\times n matrix P is replaced by another invertible n\times n matrix P' with the last column {\bf{1}}_{n} while the subdivision matrices S_{i} are kept the same, the corresponding fractal is a scaled one with the same structure as the original fractal.
Now, we derive the nonuniform multiple function system. Note that in the process of generating fractals through iterations, both the trees of maps in [11] and the multiple function systems in [12] choose some certain contractive function or IFS for all the generated points, as shown in Figure 2 (right) for the multiple function system. Based on this point, now we present the new nonuniform multiple function system.
Let \tilde{\mathcal{F}}_{\boldsymbol{\epsilon}} = \{\tilde{\mathcal{F}}_{1}, \tilde{\mathcal{F}}_{2}\} with \tilde{\mathcal{F}}_{1} = \{\tilde{f}_{11}, \cdots, \tilde{f}_{1s_{1}}\} , \tilde{\mathcal{F}}_{2} = \{\tilde{f}_{21}, \cdots, \tilde{f}_{2s_{2}}\} denote a multiple function system, where each contractive function \tilde{f}_{ij} ( j = 1, \cdots, s_{i} and i = 1, 2 ) are of the form (3.1). Let \bigcirc: = \{p_{0}, \cdots, p_{n}\} be a set of n initial points. For the first step iteration of the nonuniform multiple function system, we choose \tilde{\mathcal{F}}_{\epsilon_{1}}\in \tilde{\mathcal{F}}_{\boldsymbol{\epsilon}} with \epsilon_{1}\in\{1, 2\} and generate s_{\epsilon_{1}} sets consisting of n points, each starting from \bigcirc . Now, we modify the functions in \tilde{\mathcal{F}}_{1} and \tilde{\mathcal{F}}_{2} by replacing the corresponding matrix P with a new one, P' , according to Subsection 3.1. The new IFSs are denoted by \mathcal{F}_{1} and \mathcal{F}_{2} , with the corresponding multiple function system \mathcal{F}_{\boldsymbol{\epsilon}} . For the next step of iteration, we choose \mathcal{F}_{\epsilon_{2}, 1}\in\mathcal{F}_{\boldsymbol{\epsilon}} for the first set and use \mathcal{F}_{\epsilon_{2, 2}}\in\mathcal{F}_{\boldsymbol{\epsilon}} for the second set, until \mathcal{F}_{\epsilon_{2}, s_{\epsilon_{1}}}\in\mathcal{F}_{\boldsymbol{\epsilon}} for the last set. Suppose after k steps of iteration, we obtain m sets consisting of n points each. For the next step of iteration, from the modified multiple function system, which is still denoted by \mathcal{F}_{\boldsymbol{\epsilon}} , we choose \mathcal{F}_{\epsilon_{k+1, 1}}\in\mathcal{F}_{\boldsymbol{\epsilon}} for the first set and use \mathcal{F}_{\epsilon_{k+1, 2}}\in\mathcal{F}_{\boldsymbol{\epsilon}} for the next set, until \mathcal{F}_{\epsilon_{k+1, m}}\in\mathcal{F}_{\boldsymbol{\epsilon}} for the last set. The above process is shown in a tree structure shown in Figure 2 (left).
From Figure 2, it can be seen that along a path of a multiple function system, if we replace \tilde{\mathcal{F}}_{\epsilon_{j}} in the j th time of iteration by different modified ones for different sets, we get the nonuniform multiple function system. In this way, 'nonuniform' here implies that the choice of IFS in each time of iteration depends on the generated points.
In addition, for the multiple function system shown in Figure 2 (right), the path is (\epsilon_{1}, \cdots, \epsilon_{k}, \cdots) . Since the nonuniform multiple function system can be seen as obtained by replacing the chosen IFS of a multiple function system with different modified ones in each time of iteration, in this paper, we still denote one path of the nonuniform multiple function system by (\epsilon_{1}, \cdots, \epsilon_{k}, \cdots) . In fact, the path (\epsilon_{1}, \cdots, \epsilon_{k}, \cdots) here can actually be seen as the union of the ones (\epsilon_{1}, \epsilon_{2, i_{1}}, \cdots, \epsilon_{k, i_{k}}, \cdots) shown in Figure 2 (left).
Now, we present the convergence of the nonuniform multiple function systems along a path. In fact, similar to Proposition 2.3 in [11], we have the following result.
Theorem 1. For the path (\epsilon_{1}, \epsilon_{2, i_{1}}, \cdots, \epsilon_{k, i_{k}}, \cdots) in the tree structure of a nonuniform multiple function system with convergent IFSs, the iterations along this path starting from an initial set converges to a unique limit.
In this way, similar to Proposition 2.4 in [11], the final fractal along a certain path (\epsilon_{1}, \cdots, \epsilon_{k}, \cdots) of a nonuniform multiple function system can be obtained as the union of all the limits obtained along the paths (\epsilon_{1}, \epsilon_{2, i_{1}}, \cdots, \epsilon_{k, i_{k}}, \cdots) constituting (\epsilon_{1}, \cdots, \epsilon_{k}, \cdots) , which is stated as follows:
Theorem 2. For a nonuniform multiple function system, the attractor along the path (\epsilon_{1}, \cdots, \epsilon_{k}, \cdots) , which is composed of (\epsilon_{1}, \epsilon_{2, i_{1}}, \cdots, \epsilon_{k, i_{k}}, \cdots) , is actually the union of the limits along (\epsilon_{1}, \epsilon_{2, i_{1}}, \cdots, \epsilon_{k, i_{k}}, \cdots) .
Based on Section 3, we now show how to use the nonuniform multiple function system to generate fractals with desired structures at specific places.
To this purpose, we first denote the multiple function systems generating the target fractal and the fractals containing the desired structures by \mathcal{F}_{1} = \{\mathcal{F}_{11}, \cdots, \mathcal{F}_{1n_{1}}\} and \mathcal{F}_{2} = \{\mathcal{F}_{21}, \cdots, \mathcal{F}_{2n_{2}}\} , respectively. Here, all the contractive functions in the IFS \mathcal{F}_{ij} with i = 1, 2 and j = 1, \cdots, n_{i} are of the form (3.1) (see Remark 2). The contractive functions in \mathcal{F}_{1j} with j = 1, \cdots, n_{1} are from \mathcal{F} = \{f_{1}, \cdots, f_{N}\} , which consists of all the contractive functions based on the relevant subdivision matrices (see Subsection 3.1).
The whole process of generating the final desired fractals starts from analyzing \mathcal{F}_{1} and \mathcal{F}_{2} to derive the following items:
1) for \mathcal{F}_{1} , the paths leading to the specific polygons in the target fractal;
2) for \mathcal{F}_{2} , the paths leading to the desired structures.
In fact, for the multiple function system \mathcal{F}_{1} , try different paths to generate the target fractal and record the corresponding path. For the multiple function system \mathcal{F}' = \{\mathcal{F}'_{i}\} with \mathcal{F}'_{i} = \{f_{i}\}, i = 1, \cdots, N , by comparing the results generated along different paths of \mathcal{F}'_{i} and the target fractal, get the specific polygons and the paths leading to them. For the multiple function system \mathcal{F}_{2} , try different paths in order to generate the fractals containing the desired structures and record the corresponding paths. This helps us to know along which paths the desired structures can be obtained. We summarize the above analysis into Algorithm 1 as follows:
Algorithm 1 Analysis of the multiple function systems. |
Step 0 : Get the multiple function systems generating the target fractal and the fractals containing the desired structures, i.e., \mathcal{F}_{1} and \mathcal{F}_{2} ; |
Step 1 : For \mathcal{F}_{1} , generate the target fractal and record the path; |
Step 2 : For \mathcal{F}' , get the specific polygons in the target fractal and the paths leading to them by comparing the results generated along the paths of \mathcal{F}' and the target fractal; |
Step 3 : For \mathcal{F}_{2} , generate the fractals with the desired structures and record the paths. |
With all the needed items gotten by Algorithm 1 , we can now generate the final desired fractal. For this, we first adjust each specific polygon so that we can use the points of each adjusted polygon to construct a new matrix P' with the same order as P in the contractive functions in \mathcal{F}_{2j} , j = 1, \cdots, n_{2} . We then modify these contractive functions by replacing the matrix P with P' and get the modified multiple function system \tilde{\mathcal{F}}_{2} corresponding to each adjusted specific polygon. Starting from each adjusted specific polygon, we then take iterations along the path leading to the desired structure using the modified multiple function system corresponding to this adjusted polygon and get a scaled fractal with the desired structure according to Proposition 1. By combining all the obtained fractals and the target fractal, we get the final desired fractal. For this procedure, we also summarize it into Algorithm 2 as follows:
Algorithm 2 Generation of the desired fractal. |
Step 0 : Adjust each specific polygon according to the contractive functions in \mathcal{F}_{2j} with j = 1, \cdots, n_{2} , and get the new adjusted specific polygons; |
Step 1 : Take the control points of each adjusted polygon in the target fractal; |
Step 2 : With the points of each adjusted polygon, construct a matrix P' to replace P in the contractive functions of \mathcal{F}_{2j} with j = 1, \cdots, n_{2} in order to get the modified one, \tilde{\mathcal{F}}_{2} , corresponding to this adjusted polygon; |
Step 3 : Starting from each adjusted polygon from step 0 , take iterations along the path leading to the desired structures using the modified multiple function system corresponding to this adjusted polygon, and get the corresponding scaled fractals; |
Step 4 : Get the final desired fractal by combining all the scaled fractals and the target fractal. |
Remark 3. If we let P_1 be the matrix in the contractive functions of the multiple function system generating the target fractal and P_2 be the matrix in the contractive functions of the multiple function systems generating the fractals with desired structures, the adjustment of each specific polygon means that the order of P_1 is not less than that of P_2 .
Now, we use the algorithms in Section 4 to generate fractals with desired structures at specific places.
Example 1. For the Sierpinski Carpets, some of them are based on quadrilaterals and the others are based on triangles. Now, we try to generate a new interesting 'Sierpinski Carpet-like' fractal by suitably combining them.
Zhang et al. [12] gave an example showing 'Sierpinski Carpet-like' fractals based on quadrilaterals. Here, we use the points (0, 0), (1, 0), (0, 1), (1, 1) to derive the matrix P as
\begin{equation*} P = \left( \begin{array}{cccc} 0&0&0&1\\ 1&0&0&1\\ 0&1&0&1\\ 1&1&1&1 \end{array} \right). \end{equation*} |
The multiple function system is \mathcal{F}^{1}_{\boldsymbol{\epsilon}} = \{\mathcal{F}^{1}_{0}, \mathcal{F}^{1}_{1}\} with \mathcal{F}^{1}_{0} = \{f^{1}_{1}, \cdots, f^{1}_{9}\} and \mathcal{F}^{1}_{1} = \{f^{1}_{1}, \cdots, f^{1}_{4}, f^{1}_{6}, \cdots, f^{1}_{9}\} , where f^{1}_{i}(A) = AP^{-1}S_{i}P , i = 1, \cdots, 9 and the corresponding subdivision matrices S_{i} are as follows:
\begin{equation*} \begin{aligned} &S_{1} = 1/9 \left( \begin{array}{cccc} 9&0&0&0\\ 6&3&0&0\\ 6&0&3&0\\ 4&2&2&1 \end{array} \right), S_{2} = 1/9 \left( \begin{array}{cccc} 6&3&0&0\\ 3&6&0&0\\ 4&2&2&1\\ 2&4&1&2 \end{array} \right), S_{3} = 1/9 \left( \begin{array}{cccc} 3&6&0&0\\ 0&9&0&0\\ 2&4&1&2\\ 0&6&0&3 \end{array} \right), \\ &S_{4} = 1/9 \left( \begin{array}{cccc} 6&0&3&0\\ 4&2&2&1\\ 3&0&6&0\\ 2&1&4&2 \end{array} \right), S_{5} = 1/9 \left( \begin{array}{cccc} 4&2&2&1\\ 2&4&1&2\\ 2&1&4&2\\ 1&2&2&4\\ \end{array} \right), S_{6} = 1/9 \left( \begin{array}{cccc} 2&4&1&2\\ 0&6&0&3\\ 1&2&2&4\\ 0&3&0&6 \end{array} \right), \end{aligned} \end{equation*} |
\begin{equation*} \begin{aligned} &S_{7} = 1/9 \left( \begin{array}{cccc} 3&0&6&0\\ 2&1&4&2\\ 0&0&9&0\\ 0&0&6&3 \end{array} \right), S_{8} = 1/9 \left( \begin{array}{cccc} 2&1&4&2\\ 1&2&2&4\\ 0&0&6&3\\ 0&0&3&6 \end{array} \right), S_{9} = 1/9 \left( \begin{array}{cccc} 1&2&2&4\\ 0&3&0&6\\ 0&0&3&6\\ 0&0&0&9 \end{array} \right). \end{aligned} \end{equation*} |
Let the initial set be \bigcirc_{1} = \{(0, 0), (1, 0), (0, 1), (1, 1)\} . Along different paths in the tree structure of the above multiple function system, different 'Sierpinski Carpet-like' fractals can be obtained, like the ones shown in Figure 3.
Another multiple function system generating the 'Sierpinski Carpet-like' fractals are based on triangles. The corresponding multiple function system here is \mathcal{F}^{2}_{\boldsymbol{\epsilon}} = \{\mathcal{F}^{2}_{0}, \mathcal{F}^{2}_{1}\} with \mathcal{F}^{2}_{0} = \{f^{2}_{1}, f^{2}_{2}, f^{2}_{3}, f^{2}_{4}\} and \mathcal{F}^{2}_{1} = \{f^{2}_{1}, f^{2}_{3}, f^{2}_{4}\} , where f^{2}_{i}(X) = XP^{-1}S_{i}P with
\begin{equation*} \begin{aligned} &S_{1} = 1/2 \left( \begin{array}{cccc} 2&0&0\\ 1&1&0\\ 1&0&1 \end{array} \right), S_{2} = 1/2 \left( \begin{array}{cccc} 1&1&0\\ 0&1&1\\ 1&0&1 \end{array} \right), S_{3} = 1/2 \left( \begin{array}{cccc} 1&1&0\\ 0&2&0\\ 0&1&1 \end{array} \right), S_{4} = 1/2 \left( \begin{array}{cccc} 1&0&1\\ 0&1&1\\ 0&0&2 \end{array} \right), \end{aligned} \end{equation*} |
and the matrix P formed using the points (0, 0), (1, 0), (1/2, 2/3) is as follows:
\begin{equation*} P = \left( \begin{array}{cccc} 0&0&1\\ 1&0&1\\ 1/2&2/3&1 \end{array} \right). \end{equation*} |
Starting from the initial set \bigcirc_{2} = \{(0, 0), (1, 0), (1/2, 2/3)\} , we can generate the corresponding Sierpinski Carpet using the multiple function system \mathcal{F}^{2}_{\boldsymbol{\epsilon}} , as shown in Figure 4 (left).
Now, we give the first new fractal by combining the left fractal in the top row of Figure 3 with the Sierpinski Carpet in Figure 4 (left). To be more specific, by applying \mathcal{F}^{1}_{0} once, we get the labeled result with 9 smaller quadrilaterals as in Figure 4 (middle), and we want the parts in each smaller quadrilateral (the labeled parts in the fractal in Figure 4 (middle)) of the left fractal in the top row of Figure 3 to have the same structure as the Sierpinski Carpet in Figure 4 (left).
To generate such a fractal, we first analyze the multiple function systems generating the target fractal, i.e., the left fractal in the top row of Figure 3, and the Sierpinski Carpet in Figure 4 (left). In fact, \mathcal{F}^{1}_{\boldsymbol{\epsilon}} generates the target fractal and \mathcal{F}^{2}_{\boldsymbol{\epsilon}} generates the Sierpinski Carpet in Figure 4 (left). Starting from the initial set \bigcirc_{2} , Figure 4 shows that the fractal with the desired structure can be obtained along the path (1, 1, 1, 1) using \mathcal{F}^{2}_{\boldsymbol{\epsilon}} while the target fractal is obtained along (0) using \mathcal{F}^{1}_{0} once. Let {F}^{1}_{i} = \{f^{1}_{i}\} with i = 1, \cdots, 9 , and use them to give a new multiple function system, with which we can get each desired place by taking each IFS once.
Based on this analysis, we now get the final desired fractal. For this, we first split each desired place into two triangles and take the points of each triangle. With such points, we then construct a new matrix P' and use it to replace the matrix P in the contractive functions f^{2}_{j} with j = 1, \cdots, 4 . In this way, \mathcal{F}^{2}_{\boldsymbol{\epsilon}} is changed to be \mathcal{F}^{2'}_{\boldsymbol{\epsilon}} corresponding to each triangle. Starting from each triangle, take the path (1, 1, 1, 1) using \mathcal{F}^{2'}_{\boldsymbol{\epsilon}} corresponding to this triangle to get the corresponding scaled fractals, then with all the scaled fractals, we get the final one as, shown in Figure 4 (right).
Example 2. With the fractals in Figure 3 and Figure 4 (left), now we obtain the fractal with the features: keeping the structure in the four corner (see the parts labeled 1, 3, 7, 9 in Figure 4 (middle)) of the right fractal in the top row of Figure 3, and the absent center part (see the part labeled 5 in Figure 4 (middle)) with the structure as the one in Figure 4 (left) but without the rest parts (see the parts labeled 2, 4, 6, 8 in Figure 4 (middle)) of the right fractal in the top row of Figure 3.
Similar to the analysis in Example 1 , \mathcal{F}^{1}_{\boldsymbol{\epsilon}} generates the target fractal, which is the right fractal in the top row of Figure 3, along the path (1, 1, 1, 1) starting from the initial set \bigcirc_{1} . With \mathcal{F}^{2}_{\boldsymbol{\epsilon}} , we can generate the fractal with the desired structure along the path (1, 1, 1, 1) starting from the initial set \bigcirc_{2} . The desired place in the target fractal can be obtained by taking \mathcal{F}^{1}_{i} = \{f^{1}_{i}\} , i = 1, 3, 5, 7, 9 once.
Now, we generate the final desired fractal. For this, we first split the part (labeled 5 in the fractal in Figure 4 (middle)) into two triangles, then we take the points of each triangle to construct a new matrix P' , with which we replace P in f^{2}_{j} with j = 1, 2, 3, 4 . In this way, \mathcal{F}^{2}_{\boldsymbol{\epsilon}} is changed to be \mathcal{F}^{2'}_{\boldsymbol{\epsilon}} corresponding to each triangle. Starting from each triangle, we apply \mathcal{F}^{2'}_{\boldsymbol{\epsilon}} corresponding to this triangle along (1, 1, 1, 1) to get the desired scaled fractal. In a similar procedure, we can get the scaled fractal in the four labeled corners. Combining all these fractals, we get the final desired fractal in Figure 5 (left). In a similar way, we can get the right two fractals in Figure 5.
Example 3. Now, we continue to get a more interesting fractal. For the right fractal in the top row of Figure 3, we want the center quadrilateral and the 8 smaller ones (the labeled ones in Figure 6 (left)) to have the same structure as the Sierpinski Carpet in Figure 4 (left).
The analysis of the corresponding multiple function systems is the same with that in Example 1 , except that the part labeled 1 in the fractal in Figure 6 (left) is obtained by taking \mathcal{F}^{1}_{5} = \{f^{1}_{5}\} once while the other labeled ones need the relevant iterations twice. For example, the one labeled 2 is obtained by first applying \mathcal{F}^{1}_{2} = \{f^{1}_{2}\} and then \mathcal{F}^{1}_{5} . To generate the final desired fractal, for each desired place, we split it into two triangles, then we take the corresponding points and use them to get a matrix P' to replace P in f^{2}_{j} , j = 1, 2, 3, 4 . In this way, we get the modified multiple function system \mathcal{F}^{2'}_{\boldsymbol{\epsilon}} . Starting from each triangle, we take the path (1, 1, 1, 1) using \mathcal{F}^{2'}_{\boldsymbol{\epsilon}} corresponding to this triangle to get the corresponding scaled fractal. By combining all the scaled fractals with the target fractal, we get the final desired fractal as shown in Figure 6 (right).
This paper proposed a way to generate fractals with desired structures at specific places, which can be done using a new nonuniform multiple function system. To generate such desired fractals, we first analyze two kinds of multiple function systems needed in the generation of such desired fractals, and then generate them using the nonuniform multiple function system. Additionally, we also presented two algorithms corresponding to these procedures for the generation of the final desired fractals for convenience. The given examples show that the nonuniform multiple function system and the two given algorithms can indeed be used to generate fractals with desired structures at specific places. Note that the new fractals in this paper are actually generated by locally controlling the fractals obtained using the multiple function systems. For the given nonuniform multiple function systems and algorithms, it is still difficult to locally control the structures of the fractals with different structures at different locations to obtain new fractals. Therefore, in the future, we hope to give a new way to locally control such fractals to generate more interesting fractals and investigate the corresponding applications.
The authors declare they have not used Artificial Intelligence (AI) tools in the creation of this article.
This research is funded by Science Research Project of Hebei Education Department (QN2024065), the Scientific Research and Development Program of Hebei University of Economics and Business (2022QN15), and the National Natural Science Foundation of China (12201453).
The authors thank all the reviewers for their careful reading and for their valuable comments.
No conflicts.
[1] | J. Kigami, Analysis on fractals, Cambridge: Cambridge University Press, 2001. http://dx.doi.org/10.1017/CBO9780511470943 |
[2] | J. Hutchinson, Fractals and self-similarity, Indiana U. Math. J., 30 (1981), 713–747. |
[3] | M. Barnsley, SuperFractals, Cambridge: Cambridge University Press, 2006. http://dx.doi.org/10.1017/CBO9781107590168 |
[4] |
M. Barnsley, J. Elton, D. Hardin, Recurrent iterated function systems, Constr. Approx., 5 (1989), 3–31. http://dx.doi.org/10.1007/BF01889596 doi: 10.1007/BF01889596
![]() |
[5] | Y. Fisher, Fractal image compression: theory and application, New York: Springer, 1995. http://dx.doi.org/10.1007/978-1-4612-2472-3 |
[6] | A. Cavaretta, W. Dahmen, C. Micchelli, Stationary subdivision, Boston: American Mathematical Society, 1991. |
[7] |
S. Schaefer, D. Levin, R. Goldman, Subdivision schemes and attractors, Proceedings of the Third Eurographics Symposium on Geometry Processing, 2005,171–180. http://dx.doi.org/10.2312/SGP/SGP05/171-180 doi: 10.2312/SGP/SGP05/171-180
![]() |
[8] |
D. Levin, N. Dyn, V. Veedu, Non-stationary versions of fixed-point theory, with applications to fractals and subdivision, J. Fixed Point Theory Appl., 21 (2019), 26. http://dx.doi.org/10.1007/s11784-019-0659-1 doi: 10.1007/s11784-019-0659-1
![]() |
[9] |
T. Narayaninsamy, A method to construct irregular fractal curves, Appl. Math. Comput., 192 (2007), 260–273. http://dx.doi.org/10.1016/j.amc.2007.02.120 doi: 10.1016/j.amc.2007.02.120
![]() |
[10] |
R. Goldman, The fractal nature of Bezier curves, Proceedings of Geometric Modeling and Processing, 2004, 3–11. http://dx.doi.org/10.1109/GMAP.2004.1290020 doi: 10.1109/GMAP.2004.1290020
![]() |
[11] |
N. Dyn, D. Levin, P. Massopust, Attractors of trees of maps and of sequences of maps between spaces with applications to subdivision, J. Fixed Point Theory Appl., 22 (2020), 14. http://dx.doi.org/10.1007/s11784-019-0750-7 doi: 10.1007/s11784-019-0750-7
![]() |
[12] |
B. Zhang, H. Zheng, Y. Chen, Multiple-function systems based on regular subdivision, Fractal Fract., 6 (2022), 677. http://dx.doi.org/10.3390/fractalfract6110677 doi: 10.3390/fractalfract6110677
![]() |
[13] |
J. Andres, J. Fiser, L. Gornierwicz, Fixed points and sets of multivalued contractions: an advanced survey with some new results, Fixed Point Theor., 22 (2021), 15–30. http://dx.doi.org/10.24193/fpt-ro.2021.1.02 doi: 10.24193/fpt-ro.2021.1.02
![]() |
[14] | C. Chui, J. De Villiers, Wavelet subdivision methods: GEMS for rendering curves and surfaces, Boca Raton: CRC Press, 2010. |
[15] | J. Warren, H. Weimer, Subdivision methods for geometric design: a constructive approach, San Francisco: Morgan Kuafmann Publishers, 2002. http://dx.doi.org/10.1016/B978-1-55860-446-9.X5000-5 |