Conformal_map.svg
Size of this PNG preview of this SVG file:
342 × 599 pixels
.
Other resolutions:
137 × 240 pixels
|
274 × 480 pixels
|
438 × 768 pixels
|
584 × 1,024 pixels
|
1,169 × 2,048 pixels
|
535 × 937 pixels
.
Summary
Description Conformal map.svg | Illustration of a conformal map . |
Date | |
Source | self-made with MATLAB, tweaked in Inkscape. |
Author | Oleg Alexandrov |
SVG development
InfoField
|
This
vector image
was created with
Inkscape
.
This file uses
translateable
embedded
text.
|
Licensing
Public domain Public domain false false |
I, the copyright holder of this work, release this work into the
public domain
. This applies worldwide.
In some countries this may not be legally possible; if so: I grant anyone the right to use this work for any purpose , without any conditions, unless such conditions are required by law. |
Source code ( MATLAB )
% Compute the image of a rectangular grid under a a conformal map.
function main()
N = 15; % num of grid points
epsilon = 0.1; % displacement for each small diffeomorphism
num_comp = 10; % number of times the diffeomorphism is composed with itself
S = linspace(-1, 1, N);
[X, Y] = meshgrid(S);
% graphing settings
lw = 1.0;
% KSmrq's colors
red = [0.867 0.06 0.14];
blue = [0, 129, 205]/256;
green = [0, 200, 70]/256;
yellow = [254, 194, 0]/256;
white = 0.99*[1, 1, 1];
mycolor = blue;
% start plotting
figno=1; figure(figno); clf;
shiftx = 0; shifty = 0; scale = 1;
do_plot(X, Y, lw, figno, mycolor, shiftx, shifty, scale)
I=sqrt(-1);
Z = X+I*Y;
% tweak these numbers for a pretty map
z0 = 1+ 2*I;
z1 = 0.1+ 0.2*I;
z2 = 0.2+ 0.3*I;
a = 0.01;
b = 0.02;
shiftx = 0.1; shifty = 1.2; scale = 1.4;
F = (Z+z0).^2 +a*(Z+z1).^3 +b*(Z+z2).^4;
F = (1+2*I)*F;
XF = real(F); YF=imag(F);
do_plot(XF, YF, lw, figno, mycolor, shiftx, shifty, scale)
axis ([-1 1.3 -2 2]); axis off;
saveas(gcf, 'Conformal_map.eps', 'psc2');
function do_plot(X, Y, lw, figno, mycolor, shiftx, shifty, scale)
figure(figno); hold on;
[M, N] = size(X);
X = X - min(min(X));
Y = Y - min(min(Y));
a = max(max(max(abs(X))), max(max(abs(Y))));
X = X/a; Y = Y/a;
X = scale*(X-shiftx);
Y = scale*(Y-shifty);
for i=1:N
plot(X(:, i), Y(:, i), 'linewidth', lw, 'color', mycolor);
plot(X(i, :), Y(i, :), 'linewidth', lw, 'color', mycolor);
end
% axis([-1-small, 1+small, -1-small, 1+small]);
axis equal; axis off;