From Wikipedia, the free encyclopedia
Size of this preview: 800 × 387 pixelsFull resolution (1,367 × 661 pixels, file size: 45 KB, MIME type: image/png)
[edit] Source code
% Bifolium
function main()
% linewidth and font size
lw= 6;
fs = 20;
% colors
red=[0.867 0.06 0.14];
blue = [0, 129, 205]/256;
green = [0, 200, 70]/256;
black = [0, 0, 0];
white = 0.99*[1, 1, 1];
N=500; % number of points (don't make it big, code will be slow)
Lx1 = -0.3; Lx2 = 1.6; Ly1 = -1.3; Ly2 = -Ly1;
bd = 0.05;
for i = 1:10
% Set up the plotting window
figure(1); clf; set(gca, 'fontsize', fs, 'linewidth', lw/4);
hold on; axis equal; grid on;
figure(2); clf; hold on; axis equal; axis off;
[X, Y]=meshgrid(linspace(Lx1, Lx2, N), linspace(Ly1, Ly2, N));
x = X; y = Y;
a = 1;
Z = (x.^2 + y.^2).^2 - a.*x.^2.*y;
% graph the curves using 'contour' in figure (2)
figure(2); [c, stuff] = contour(X, Y, Z, [0, 0]);
% extract the curves from c and graph them in figure(1) using 'plot'
% need to do this kind of convoluted work since plot2svg can't save
% the result of 'contour' but can save the result of 'plot'
[m, n] = size(c);
while n > 0
l=c(2, 1);
x=c(1,2:(l+1)); y=c(2,2:(l+1)); % get x and y of contours
figure(1); plot(x, y, 'color', red, 'linewidth', lw/2);
c = c(:, (l+2):n);
[m, n] = size(c);
Lx1 = min(x) - bd; Lx2 = max(x) + bd;
Ly1 = min(y) - bd; Ly2 = max(y) + bd;
end
figure(1); axis equal; axis ([Lx1, Lx2, Ly1, Ly2]);
end
saveas(gcf, 'Bifolium.eps', 'psc2')
File history
Click on a date/time to view the file as it appeared at that time.
| Date/Time | Dimensions | User | Comment |
current | 05:08, 14 July 2007 | 1,367×661 (45 KB) | Oleg Alexandrov | |
File links
The following pages on the English Wikipedia link to this file (pages on other projects are not listed):