git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/web/trunk@2920 92316355-f0b4-4df1-b90c-862c8a59935fremotes/test
@@ -0,0 +1,57 @@ | |||||
# $Id$ | |||||
# Activated modules | |||||
RewriteEngine on | |||||
# We talk utf8 here | |||||
AddDefaultCharset utf-8 | |||||
# Disallowed files: .htaccess, .htpasswd, .svn etc. | |||||
<Files ~ "^\.ht"> | |||||
Order allow,deny | |||||
Deny from all | |||||
</Files> | |||||
<Files ~ "^\.svn"> | |||||
Order allow,deny | |||||
Deny from all | |||||
</Files> | |||||
# MIME Types | |||||
<IfModule mod_action.c> | |||||
AddType application/x-cgi-php .html | |||||
Action application/x-cgi-php /cgi-bin/php5 | |||||
</IfModule> | |||||
<IfModule !mod_action.c> | |||||
AddType application/x-httpd-php .html | |||||
</IfModule> | |||||
AddType text/css .css | |||||
AddType application/octet-stream .TAP | |||||
# Redirects for disallowed stuff | |||||
RewriteRule ^.git/.* /.git/ [L] | |||||
RewriteRule ^.svn/.* /.svn/ [L] | |||||
RewriteRule (.*)/.svn/.* /$1/.svn/ [L] | |||||
# Redirects for manual and lists | |||||
RewriteRule ^manual/$ /manual.html?page=index [L] | |||||
RewriteRule ^manual/(.*)[.]html /manual.html?page=$1 [L] | |||||
RewriteRule ^list/$ /list.html?page=threads [L] | |||||
RewriteRule ^list/(.*)[.]html /list.html?page=$1 [L] | |||||
RewriteRule ^list-svn/$ /list-svn.html?page=threads [L] | |||||
RewriteRule ^list-svn/(.*)[.]html /list-svn.html?page=$1 [L] | |||||
RewriteRule ^list-trac/$ /list-trac.html?page=threads [L] | |||||
RewriteRule ^list-trac/(.*)[.]html /list-trac.html?page=$1 [L] | |||||
# Misc. redirects | |||||
RewriteRule ^([^/]*).(gz|bz2|zip) /files/$1.$2 [R=permanent,L] | |||||
RewriteRule ^images/(.*) /img/$1 [R=permanent,L] | |||||
RewriteRule ^labs/img2oric.html /img2oric/ [R=permanent,L] | |||||
RewriteRule ^devel.html /wiki [R=permanent,L] | |||||
RewriteRule ^cgi-bin/viewcvs.cgi /browser [R=permanent,L] | |||||
# Redirects for Trac - FIXME | |||||
RewriteCond %{REQUEST_FILENAME} !-f | |||||
RewriteCond %{REQUEST_FILENAME} !-d | |||||
RewriteRule ^(.*)$ /cgi-bin/trac.cgi/$1 [PT,L,E=SCRIPT_NAME:/] | |||||
@@ -0,0 +1,117 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="CacaCon’07 - First International libcaca Conference" /> | |||||
<meta name="Keywords" content="CacaCon, libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||||
<title>CacaCon’07 - First International libcaca Conference</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<p> FOR IMMEDIATE RELEASE </p> | |||||
<h2> Report on the First International libcaca Conference </h2> | |||||
<p> Wednesday October 24, 2007 </p> | |||||
<p> Sam (ZOY) - Paris, France: <b>CacaCon’07</b>, the first international | |||||
libcaca conference, just took place on October 19-20, 2007 in Lyon, France. | |||||
</p> | |||||
<p> The most eagerly-awaited event of the conference was of course Jylam’s | |||||
keynote. The acclaimed libcaca second-in-chief developer covered the | |||||
history of the project, gave key figures about its current status, and | |||||
of course hinted at future plans. </p> | |||||
<p> The morning of the second day had been busy with uncalled for attacks | |||||
directed at the libcaca team by Mozilla Europe Board of Directors | |||||
president Tristan Nitot who reportedly managed to say that "all | |||||
applications have memory leaks" without immediately dying of maniac, | |||||
self-ridiculing laughter. Needless to say, Jylam’s keynote was | |||||
immediately refocused on insisting about libcaca’s superior development | |||||
model and giving examples of its speed, lightweightness and general lack | |||||
of memory leaks. </p> | |||||
<table cellspacing="5" border="0" style="margin: auto;"> | |||||
<tr> | |||||
<td align="center"> | |||||
<a href="DSC000013.JPG"><img alt="Jylam" | |||||
width="68" height="90" | |||||
src="tn-DSC000013.jpeg" /><br />Jylam</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="DSC000011.JPG"><img alt="PowerPipo" | |||||
width="120" height="90" | |||||
src="tn-DSC000011.jpeg" /><br />PowerPipo</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="DSC000017.JPG"><img alt="the audience" | |||||
width="135" height="90" | |||||
src="tn-DSC000017.jpeg" /><br />the audience</a> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
<p> The libcaca team eventually announced its new forthcoming product | |||||
"neercs", a replacement for the obsolete Unix utility "screen" with | |||||
full Unicode support, window thumbnailing, eye-candy transition effects | |||||
and textmode window management. The audience also sat in awe as Jylam, | |||||
literally knee-shaking in excitement, admitted that the very tool he had | |||||
been using during the keynote was not a Microsoft product or a cheap | |||||
clone thereof, but a development version of the libcaca team’s own | |||||
fully-featured presentation tool, PowerPipo. </p> | |||||
<p> <b>CacaCon’07</b> ended with a social event at luxury resort Le Chevreul | |||||
(Lyon) where hundreds of potential libcaca users and enthusiasts would | |||||
have been able to meet main developers Sam and Jylam. </p> | |||||
<table cellspacing="5" border="0" style="margin: auto;"> | |||||
<tr> | |||||
<td align="center"> | |||||
<a href="DSC000026.JPG"><img alt="Jylam and Sam" | |||||
width="120" height="90" | |||||
src="tn-DSC000026.jpeg" /><br />Jylam and Sam</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="DSC000029.JPG"><img alt="fan art" | |||||
width="135" height="90" | |||||
src="tn-DSC000029.jpeg" /><br />fan art</a> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
<p> <b>About libcaca:</b> <br /> | |||||
libcaca is the industry leading colour ASCII art library. It is part | |||||
of a global conspiracy aiming at luring basement-dwelling nerds | |||||
into thinking that focusing on overtechnical, useless and generally | |||||
uninteresting activities is going to help them get laid. Approximately | |||||
700,000 Linux users still believe it to be true and frantically | |||||
recompile nightly git snapshots of the kernel as a consequence. </p> | |||||
<p> <b>About Firefox:</b> <br /> | |||||
Firefox is the Mozilla Corporation’s rebranded version of the famous | |||||
Iceweasel web browser, to which they insist on adding a restrictive | |||||
trademark license and a suggestive yiff logo. Notwithstanding, we urge | |||||
you to donate all your money to the multimillion-dollar company. The | |||||
guys look legit. </p> | |||||
<p> <b>About memory leaks:</b> <br /> | |||||
All applications called Firefox have memory leaks. </p> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,37 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="libcaca - cacatris" /> | |||||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||||
<title>libcaca - cacatris</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<h2> cacatris </h2> | |||||
<p> Cacatris aims to create a graphical Tetris(c) clone, but in text mode. Main concerns focus on gameplay, and graphical quality (althought current screenshot doesn't really show this).</p> | |||||
<p> It is currently under heavy developement, thus no downloads are available yet.</p> | |||||
<h2> Screenshot </h2> | |||||
<p style="text-align: center;"><img src="cacatris-sample.png" width="648" | |||||
height="436" alt="ttyvaders sample 2" /></p> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,64 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="libcaca - downloads" /> | |||||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||||
<title>libcaca - downloads</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<p> You can <a href="/files/downloads">browse old releases</a> of all the libcaca | |||||
software. </p> | |||||
<h2> Libcaca development versions </h2> | |||||
<p> The latest libcaca beta version is <a | |||||
href="/files/libcaca/libcaca-0.99.beta13b.tar.gz">libcaca-0.99.beta13b.tar.gz</a> | |||||
(November 28th, 2007). Please download and test it. If you are a developer, | |||||
please comment on the current API and let us know what is missing. </p> | |||||
<p> Even more recent code can be downloaded using Subversion. See the <a | |||||
href="/devel.html">development page</a> for more information. </p> | |||||
<h2> Documentation </h2> | |||||
<p> You can download a <a href="libcaca.pdf">PDF version</a> of the | |||||
libcaca manual. </p> | |||||
<h2> Old libcaca stable versions </h2> | |||||
<p> <span style="color: #aa0000; font-weight: bold;">Warning</span>: stable | |||||
releases of libcaca are terribly outdated. If you want to test libcaca, you | |||||
are encouraged to check the development versions. </p> | |||||
<p> Latest stable libcaca release is <a | |||||
href="/files/libcaca/libcaca-0.9.tar.gz">libcaca-0.9.tar.gz</a> (216KB) / <a | |||||
href="/files/libcaca/libcaca-0.9.tar.bz2">libcaca-0.9.tar.bz2</a> (172KB). </p> | |||||
<p> A Windows zip archive containing the libcaca demos can be downloaded here: | |||||
<a href="/files/libcaca/libcaca-win32-0.9.zip">libcaca-win32-0.9.zip</a> (100KB). </p> | |||||
<p> Older versions (up to 0.9) were under the LGPL license but all | |||||
copyright holders agreed to relicence the codebase under the WTFPL (such a | |||||
permission is not retroactive and you should consider old versions as still | |||||
covered by the LGPL). The logo on this page is copyrighted by Akira Toriyama | |||||
so if anyone fancies drawing a new logo it would be much appreciated. </p> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,48 @@ | |||||
<html><head> | |||||
<title>Generated by libcaca 0.99.beta10</title> | |||||
</head><body> | |||||
<div cellpadding='0' cellspacing='0' style='font-family: monospace, fixed; font-weight: bold;'> | |||||
<span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▄▄▄</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▄▄▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000"> ▄</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#f5f;background-color:#000">▀▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄ ▄▄</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀▀</span><span style="color:#f5f;background-color:#a0a">▄▄▄</span><span style="color:#a0a;background-color:#000">▄▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000"> ▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#a0a;background-color:#000">▄ ▄▄ ▄</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄ ▄▄</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#a0a;background-color:#000">▄▄ ▄▄</span><span style="color:#f5f;background-color:#a0a">▄▄▄▄▄▄▄</span><span style="color:#a0a;background-color:#000">▄▄ ▄▄</span><span style="color:#f5f;background-color:#a0a">▄▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓▓</span><span style="color:#fff;background-color:#000">▄▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▒▒▒▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#fff;background-color:#000">▄▄▄▄▄▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▌</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▓▒▓▓▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#f5f;background-color:#a0a">▐</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▒▒░▒▓</span><span style="color:#fff;background-color:#000">▀</span><span style="color:#fff;background-color:#aaa">▓▒▒▒▒▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓</span><span style="color:#fff;background-color:#000">▄▀</span><span style="color:#fff;background-color:#aaa">▓▓▒▓</span><span style="color:#fff;background-color:#000">▌▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▓▓▓</span><span style="color:#fff;background-color:#000">▄▀</span><span style="color:#fff;background-color:#aaa">▓▓▓▓▓▓▓▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▓▓</span><span style="color:#fff;background-color:#000">▄ </span><span style="color:#fff;background-color:#aaa">▓▓▒▒▒▒▒▓▓</span><span style="color:#fff;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▌</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▓▒▒░░▒</span><span style="color:#aaa;background-color:#000">▌ </span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▓</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#fff;background-color:#aaa">▓▒▒▓▓</span><span style="color:#fff;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">▒▒▒▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#fff;background-color:#aaa">▒▒▒▓▒▒░</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#fff;background-color:#aaa">▒░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">▓▒▒▒░▒▒▒▓▓▀</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">▓▒░▒▒▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">▓▓▒░░▒▒</span><span style="color:#fff;background-color:#000">█ </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#a0a;background-color:#000">█</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#f5f;background-color:#a0a">▐</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#aaa;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▒░</span><span style="color:#555;background-color:#aaa">░░░▒</span><span style="color:#555;background-color:#000">▄ </span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄▌</span><span style="color:#aaa;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▒▒▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">░░▒</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">░░▒░</span><span style="color:#aaa;background-color:#000">█ ▐</span><span style="color:#fff;background-color:#aaa">░ ░▒</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">▒░░ ░░▒</span><span style="color:#aaa;background-color:#000">▀▀▄</span><span style="color:#fff;background-color:#aaa">▒▒░</span><span style="color:#aaa;background-color:#000"> ▀</span><span style="color:#fff;background-color:#aaa">░░▒</span><span style="color:#aaa;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▒░░░░▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#a0a;background-color:#000">█ ▄▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">▒▒░▒▒▓▓</span><span style="color:#555;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#aaa;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▒░░▒▓</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#555;background-color:#000">▄</span><span style="color:#555;background-color:#aaa">░░░▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">░░</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">░░▒▒░</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#aaa;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▀ ▐</span><span style="color:#555;background-color:#aaa">░ </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">░░░░</span><span style="color:#555;background-color:#aaa">░░░</span><span style="color:#fff;background-color:#aaa">░ ░░</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">░░░</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#a0a;background-color:#000">█▄</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▐</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#555;background-color:#000">▐</span><span style="color:#555;background-color:#aaa">▓▓▒▒▓▓</span><span style="color:#555;background-color:#000">▀▄</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#fff;background-color:#aaa">▒░░ ░▒▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▒▒▒▓</span><span style="color:#555;background-color:#000">▌▐</span><span style="color:#555;background-color:#aaa">▒▒▒░░▒▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄█ </span><span style="color:#555;background-color:#aaa">▒░░░░</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▒░░▒▒</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▒▒░ ░░</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">░░</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐█▀▀</span><span style="color:#aaa;background-color:#000">▄</span><span style="color:#555;background-color:#000">▄</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000"> ▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▓</span><span style="color:#555;background-color:#000">▀▄</span><span style="color:#555;background-color:#aaa">▓▓▒▒░░ ░</span><span style="color:#fff;background-color:#aaa">░▒</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#555;background-color:#000">▐</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▀▀▄</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▒▒░</span><span style="color:#555;background-color:#000">▄▄▄</span><span style="color:#f5f;background-color:#000">▀▀▀█▌</span><span style="color:#555;background-color:#000">▐</span><span style="color:#555;background-color:#aaa">▒▒░▒▒▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▓▒▒</span><span style="color:#555;background-color:#000">▌ ▐</span><span style="color:#555;background-color:#aaa">▒▒░▒▒</span><span style="color:#555;background-color:#000">▌</span><span style="color:#555;background-color:#aaa">▒▒░▒</span><span style="color:#aaa;background-color:#000">▄▄</span><span style="color:#555;background-color:#aaa">░░░▒▒▒▓▓</span><span style="color:#555;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><br /> | |||||
<span style="color:#a0a;background-color:#000"> ▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀ </span><span style="color:#555;background-color:#aaa">▓▓▓▒▒░░ ░░</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▒▒▒░░░</span><span style="color:#555;background-color:#000">▄▄▄▀</span><span style="color:#555;background-color:#aaa">▓▓▓</span><span style="color:#555;background-color:#000">▀▄</span><span style="color:#555;background-color:#aaa">▓▓▓▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▓▓▒▒▒▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▓▒▒▒░░░▒▒▒▒▒▓▓▓</span><span style="color:#555;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓▒▒▒░░</span><span style="color:#555;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▀█▄ ▀▀▀ ▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▒▒▓▓▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#555;background-color:#000">▀▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▓▓</span><span style="color:#555;background-color:#000">▌▐</span><span style="color:#555;background-color:#aaa">▓▓▓▓▒▒▒▒▓▓▓▓▓</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀</span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄ ▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀▀▀▄▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄█▀▀▀▀</span><span style="color:#f5f;background-color:#a0a">▄▄▀▀▀</span><span style="color:#a0a;background-color:#000">██▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄</span><span style="color:#555;background-color:#000">▀▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓▓</span><span style="color:#555;background-color:#000">▀▀▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000"> ▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#a0a;background-color:#a0a"> </span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄█▀▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#a00;background-color:#000">▄</span><span style="color:#f55;background-color:#a00">░▒▓▒</span><span style="color:#a00;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀██▄▄▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#a0a;background-color:#000">█▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄▄▄ </span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀▀</span><span style="color:#a0a;background-color:#000">▀▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000"> ▐</span><span style="color:#f5f;background-color:#a0a">▐</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▓▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#a0a;background-color:#a0a"> </span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▒▒▒▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a00;background-color:#000">█</span><span style="color:#f55;background-color:#a00">░▒▓</span><span style="color:#fff;background-color:#a00">▓</span><span style="color:#f55;background-color:#a00">▓▒</span><span style="color:#a00;background-color:#000">█ </span><span style="color:#f5f;background-color:#000">█▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▒▒░▒▓▓▓▓</span><span style="color:#fff;background-color:#000">▄▀</span><span style="color:#fff;background-color:#aaa">▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▓▓▓▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000"> █</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▓▓▒▒▒▓▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#aaa;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▒▒▒░░░▒▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█▄</span><span style="color:#a00;background-color:#000">▀</span><span style="color:#f55;background-color:#a00">░▒▓▒</span><span style="color:#a00;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄█▌</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▓▒▒░░░░▒▒▒▓▓</span><span style="color:#fff;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▓▒▒▒▓▓</span><span style="color:#fff;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▌</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000"> ▐</span><span style="color:#f5f;background-color:#a0a">▐</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▒▒░▒▒▓▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀ </span><span style="color:#fff;background-color:#aaa">▒░░░</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#fff;background-color:#aaa">░░▒</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▀▄█▄▄▄▄▀▀</span><span style="color:#fff;background-color:#000">▄ </span><span style="color:#fff;background-color:#aaa">▒▒░░░</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#fff;background-color:#aaa">▒░░░▒▒</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">▓▒▒▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▒▒▒▒░░░▒▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#a0a;background-color:#000">█</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000"> █</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▓▓▒░░░▒▒▒▒</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▀▌</span><span style="color:#aaa;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▒░</span><span style="color:#555;background-color:#aaa">░ </span><span style="color:#fff;background-color:#aaa">░░░</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▓▓▓</span><span style="color:#fff;background-color:#000">▌ </span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#555;background-color:#aaa">▒▒░</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#555;background-color:#aaa">░░▒</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▀▄</span><span style="color:#fff;background-color:#aaa">▒░░░▒▒▒░░░░ </span><span style="color:#555;background-color:#aaa">░</span><span style="color:#fff;background-color:#aaa">░░░▒</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▌</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#a0a;background-color:#000"> █</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▒░</span><span style="color:#555;background-color:#aaa">░░░</span><span style="color:#fff;background-color:#aaa">░░░░</span><span style="color:#aaa;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#555;background-color:#aaa">░ ░░</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▌ ▐</span><span style="color:#fff;background-color:#aaa">▓▓▒▒░▒▒▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#000">▄</span><span style="color:#aaa;background-color:#000">▄▄▄▀</span><span style="color:#555;background-color:#aaa">░▒</span><span style="color:#555;background-color:#000">▄</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▒</span><span style="color:#555;background-color:#000">▀</span><span style="color:#aaa;background-color:#000">▄</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#555;background-color:#aaa">░ ░</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#aaa;background-color:#000">▀▀▀</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">░░ ░░</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▌</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">▒▒▒░░░▒</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">▓</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">▒▒░░░▒▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">▒░░░</span><span style="color:#555;background-color:#aaa">░░</span><span style="color:#fff;background-color:#aaa">░░░</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#555;background-color:#000">▄</span><span style="color:#555;background-color:#aaa">▒▒░░░░░▒▒▒</span><span style="color:#555;background-color:#000">▄ </span><span style="color:#555;background-color:#aaa">▒▒░░░░▒▒</span><span style="color:#555;background-color:#000">▌▄</span><span style="color:#555;background-color:#aaa">▒▒░░░░░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#a0a;background-color:#000">█</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▒▒▒▒▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▒▒▒▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▒▒▒▓▓▓▓▒▒▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▓▓▓▒▒▒▒▒▓▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄█ </span><span style="color:#555;background-color:#aaa">▓▓▒▒▒▒▓▓</span><span style="color:#555;background-color:#000">▐</span><span style="color:#555;background-color:#aaa">▓▒▒▒▒▒▒▓</span><span style="color:#555;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▌</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▀ ▄</span><span style="color:#555;background-color:#aaa">▓▓▓</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓</span><span style="color:#555;background-color:#000">▄▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓▓▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▓▓</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀ ▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">█▄▄▄▄█</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">██▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄▄▄█</span><span style="color:#f5f;background-color:#a0a">▄▄▄</span><span style="color:#a0a;background-color:#000">▄ ▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀▀</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█▀</span><span style="color:#00a;background-color:#000">▄▄▄▄▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#00a;background-color:#000">▄▄▄▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄▄███</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#00a;background-color:#000">▄▄▄▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄ ▀▀▀▀</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀▀▀▀▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#55f;background-color:#000">▄ </span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█▄▀▀▀▀▀█ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">██ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#55f;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒</span><span style="color:#00a;background-color:#000">▀█ </span><span style="color:#00a;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#55f;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">██ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#55f;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#55f;background-color:#000">█ </span><span style="color:#55f;background-color:#00a"> ░▒▓</span><span style="color:#55f;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">█▄▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀▀▀▀ ▀▀▀▀▀ ▀▀▀▀▀▀ ▀▀▀▀▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#000">M O R T A L W </span><span style="color:#555;background-color:#000">i </span><span style="color:#fff;background-color:#000">S H</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#555;background-color:#000">▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄</span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">PiL HQ </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">Syndrome Couriers HQ </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">GODS WHQ</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">16.8 Duals </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">8i8.XxX.XxXx </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">8 Node Ringdown</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">S: QUAZiMODEM & CiPHER</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">CO'S: LORD THiNKER THE MOZARELLO</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">SLiCE & DiCE </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">HURRiCAN </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">RAZOR BLADE</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#555;background-color:#000">▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀</span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#000">ANSi BY </span><span style="color:#fff;background-color:#000">LUC </span><span style="color:#555;background-color:#000">< </span><span style="color:#55f;background-color:#000">AiM </span><span style="color:#555;background-color:#000">'</span><span style="color:#00a;background-color:#000">NiNE FO</span><span style="color:#555;background-color:#000">' ></span><span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><br /> | |||||
<span style="color:#aaa;background-color:#000"> </span><br /> | |||||
</div></body></html> |
@@ -0,0 +1,17 @@ | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="gradleft"> | |||||
<div class="gradright"> | |||||
<div class="bottom"> | |||||
<div class="bottombar"> | |||||
<div style="float: right"> | |||||
<p>valid <a href="http://validator.w3.org/check/referer">XHTML 1.1</a> & <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></p> | |||||
</div> | |||||
<p><?php echo $rev . ' Host: ' . $_SERVER['REMOTE_ADDR'];?></p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
@@ -0,0 +1,28 @@ | |||||
<div class="gradleft"> | |||||
<div class="gradright"> | |||||
<div class="top"> | |||||
<p class="dashit"> | |||||
<?php function printrand($a) { print $a[array_rand($a)]; } | |||||
printrand(array('it’s da shit!', | |||||
'libcaca c’est du caca', | |||||
'libcacaは糞です。', | |||||
'die scheussliche Bibliothek', | |||||
'libcaca©®™, take back the text', | |||||
'a million flies cannot be wrong')); ?> | |||||
</p> | |||||
<h1> libcaca - Colour AsCii Art library </h1> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="menubar" style="clear: both;"> | |||||
<p> | |||||
<a class="menubutton" href="/">home</a> | |||||
<a class="menubutton" href="/manual/">manual</a> | |||||
<a class="menubutton" href="/list.html">mailing-lists</a> | |||||
</p> | |||||
</div> | |||||
<div class="gradleft"> | |||||
<div class="gradright"> | |||||
<div class="main"> |
@@ -0,0 +1,610 @@ | |||||
/* | |||||
* img2oric Convert an image to Oric Atmos colours | |||||
* Copyright (c) 2008 Sam Hocevar <sam@zoy.org> | |||||
* All Rights Reserved | |||||
* | |||||
* Changes: | |||||
* Jan 18, 2008: initial release | |||||
* Jan 23, 2008: add support for inverse video on attribute change | |||||
* improve Floyd-Steinberg coefficient values | |||||
* Jun 14, 2008: Win32 version | |||||
* Jun 18, 2008: add meaningful error messages | |||||
* | |||||
* This program is free software. It comes without any warranty, to | |||||
* the extent permitted by applicable law. You can redistribute it | |||||
* and/or modify it under the terms of the Do What The Fuck You Want | |||||
* To Public License, Version 2, as published by Sam Hocevar. See | |||||
* http://sam.zoy.org/wtfpl/COPYING for more details. | |||||
* | |||||
* To build this program on Linux: | |||||
* cc -O3 -funroll-loops -W -Wall img2oric.c -o img2oric \ | |||||
* $(pkg-config --cflags --libs sdl) -lSDL_image -lm | |||||
* To build a Windows executable: | |||||
* i586-mingw32msvc-cc -O3 -funroll-loops -W -Wall \ | |||||
* img2oric.c -o img2oric.exe -lgdi32 | |||||
*/ | |||||
#include <stdio.h> | |||||
#include <stdlib.h> | |||||
#include <string.h> | |||||
#include <math.h> | |||||
#if defined _WIN32 | |||||
# include <windows.h> | |||||
# define uint8_t unsigned char | |||||
#else | |||||
# include <SDL_image.h> | |||||
#endif | |||||
/* | |||||
* BMP output name and Oric output name | |||||
*/ | |||||
#define BMPFILE "output.bmp" | |||||
#define ORICFILE "OUTPUT" /* ".TAP" will be appended */ | |||||
/* | |||||
* Image dimensions and recursion depth. DEPTH = 2 is a reasonable value, | |||||
* DEPTH = 3 gives good quality, and higher values may improve the results | |||||
* even more but at the cost of significantly longer computation times. | |||||
*/ | |||||
#define WIDTH 240 | |||||
#define HEIGHT 200 | |||||
#define DEPTH 3 | |||||
/* | |||||
* Error diffusion table, similar to Floyd-Steinberg. I choose not to | |||||
* propagate 100% of the error, because doing so creates awful artifacts | |||||
* (full lines of the same colour, massive colour bleeding) for unclear | |||||
* reasons. Atkinson dithering propagates 3/4 of the error, which is even | |||||
* less than our 31/32. I also choose to propagate slightly more in the | |||||
* X direction to avoid banding effects due to rounding errors. | |||||
* It would be interesting, for future versions of this software, to | |||||
* propagate the error to the second line, too. But right now I find it far | |||||
* too complex to do. | |||||
* | |||||
* +-------+-------+ | |||||
* | error |FS0/FSX| | |||||
* +-------+-------+-------+ | |||||
* |FS1/FSX|FS2/FSX|FS3/FSX| | |||||
* +-------+-------+-------+ | |||||
*/ | |||||
#define FS0 15 | |||||
#define FS1 6 | |||||
#define FS2 9 | |||||
#define FS3 1 | |||||
#define FSX 32 | |||||
/* | |||||
* The simple Oric RGB palette, made of the 8 Neugebauer primary colours. Each | |||||
* colour is repeated 6 times so that we can point to the palette to paste | |||||
* whole blocks of 6 pixels. It’s also organised so that palette[7-x] is the | |||||
* RGB negative of palette[x], and screen command X uses palette[X & 7]. | |||||
*/ | |||||
#define o 0x0000 | |||||
#define X 0xffff | |||||
static const int palette[8][6 * 3] = | |||||
{ | |||||
{ o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o }, | |||||
{ X, o, o, X, o, o, X, o, o, X, o, o, X, o, o, X, o, o }, | |||||
{ o, X, o, o, X, o, o, X, o, o, X, o, o, X, o, o, X, o }, | |||||
{ X, X, o, X, X, o, X, X, o, X, X, o, X, X, o, X, X, o }, | |||||
{ o, o, X, o, o, X, o, o, X, o, o, X, o, o, X, o, o, X }, | |||||
{ X, o, X, X, o, X, X, o, X, X, o, X, X, o, X, X, o, X }, | |||||
{ o, X, X, o, X, X, o, X, X, o, X, X, o, X, X, o, X, X }, | |||||
{ X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X }, | |||||
}; | |||||
/* | |||||
* Gamma correction tables. itoc_table and ctoi_table accept overflow and | |||||
* underflow values to a reasonable extent, so that we don’t have to check | |||||
* for these cases later in the code. Tests kill performance. | |||||
*/ | |||||
#define PAD 2048 | |||||
static int itoc_table_clip[PAD + 256 + PAD], ctoi_table_clip[PAD + 256 + PAD]; | |||||
static int *itoc_table = itoc_table_clip + PAD; | |||||
static int *ctoi_table = ctoi_table_clip + PAD; | |||||
static void init_tables(void) | |||||
{ | |||||
int i; | |||||
for(i = 0; i < PAD + 256 + PAD; i++) | |||||
{ | |||||
double f = 1.0 * (i - PAD) / 255.999; | |||||
if(f >= 0.) | |||||
{ | |||||
itoc_table_clip[i] = (int)(65535.999 * pow(f, 1./2.2)); | |||||
ctoi_table_clip[i] = (int)(65535.999 * pow(f, 2.2)); | |||||
} | |||||
else | |||||
{ | |||||
itoc_table_clip[i] = - (int)(65535.999 * pow(-f, 1./2.2)); | |||||
ctoi_table_clip[i] = - (int)(65535.999 * pow(-f, 2.2)); | |||||
} | |||||
} | |||||
} | |||||
static inline int itoc(int p) { return itoc_table[p / 0x100]; } | |||||
static inline int ctoi(int p) { return ctoi_table[p / 0x100]; } | |||||
/* | |||||
* Set new background and foreground colours according to the given command. | |||||
*/ | |||||
static inline void domove(uint8_t command, uint8_t *bg, uint8_t *fg) | |||||
{ | |||||
if((command & 0x78) == 0x00) | |||||
*fg = command & 0x7; | |||||
else if((command & 0x78) == 0x10) | |||||
*bg = command & 0x7; | |||||
} | |||||
/* | |||||
* Clamp pixel value to avoid colour bleeding. Deactivated because it | |||||
* does not give satisfactory results. | |||||
*/ | |||||
#define CLAMP 0x1000 | |||||
static inline int clamp(int p) | |||||
{ | |||||
#if 0 | |||||
/* FIXME: doesn’t give terribly good results on eg. eatme.png */ | |||||
if(p < - CLAMP) return - CLAMP; | |||||
if(p > 0xffff + CLAMP) return 0xffff + CLAMP; | |||||
#endif | |||||
return p; | |||||
} | |||||
/* | |||||
* Compute the perceptual error caused by replacing the input pixels "in" | |||||
* with the output pixels "out". "inerr" is the diffused error that should | |||||
* be applied to "in"’s first pixel. "outerr" will hold the diffused error | |||||
* to apply after "in"’s last pixel upon next call. The return value does | |||||
* not mean much physically; it is one part of the algorithm where you need | |||||
* to play a bit in order to get appealing results. That’s how image | |||||
* processing works, dude. | |||||
*/ | |||||
static inline int geterror(int const *in, int const *inerr, | |||||
int const *out, int *outerr) | |||||
{ | |||||
int tmperr[9 * 3]; | |||||
int i, c, ret = 0; | |||||
/* 9 cells: 1 for the end of line, 8 for the errors below */ | |||||
memcpy(tmperr, inerr, 3 * sizeof(int)); | |||||
memset(tmperr + 3, 0, 8 * 3 * sizeof(int)); | |||||
for(i = 0; i < 6; i++) | |||||
{ | |||||
for(c = 0; c < 3; c++) | |||||
{ | |||||
/* Experiment shows that this is important at small depths */ | |||||
int a = clamp(in[i * 3 + c] + tmperr[c]); | |||||
int b = out[i * 3 + c]; | |||||
tmperr[c] = (a - b) * FS0 / FSX; | |||||
tmperr[c + (i * 3 + 3)] += (a - b) * FS1 / FSX; | |||||
tmperr[c + (i * 3 + 6)] += (a - b) * FS2 / FSX; | |||||
tmperr[c + (i * 3 + 9)] += (a - b) * FS3 / FSX; | |||||
ret += (a - b) / 256 * (a - b) / 256; | |||||
} | |||||
} | |||||
for(i = 0; i < 4; i++) | |||||
{ | |||||
for(c = 0; c < 3; c++) | |||||
{ | |||||
/* Experiment shows that this is important at large depths */ | |||||
int a = itoc((in[i * 3 + c] + in[i * 3 + 3 + c] | |||||
+ in[i * 3 + 6 + c]) / 3); | |||||
int b = itoc((out[i * 3 + c] + out[i * 3 + 3 + c] | |||||
+ out[i * 3 + 6 + c]) / 3); | |||||
ret += (a - b) / 256 * (a - b) / 256; | |||||
} | |||||
} | |||||
/* Using the diffused error as a perceptual error component is stupid, | |||||
* because that’s not what it is at all, but I found that it helped a | |||||
* bit in some cases. */ | |||||
for(i = 0; i < 3; i++) | |||||
ret += tmperr[i] / 256 * tmperr[i] / 256; | |||||
memcpy(outerr, tmperr, 3 * sizeof(int)); | |||||
return ret; | |||||
} | |||||
static uint8_t bestmove(int const *in, uint8_t bg, uint8_t fg, | |||||
int const *errvec, int depth, int maxerror, | |||||
int *error, int *out) | |||||
{ | |||||
int voidvec[3], nvoidvec[3], bestrgb[6 * 3], tmprgb[6 * 3], tmpvec[3]; | |||||
int const *voidrgb, *nvoidrgb, *vec, *rgb; | |||||
int besterror, curerror, suberror, statice, voide, nvoide; | |||||
int i, j, c; | |||||
uint8_t command, bestcommand; | |||||
/* Precompute error for the case where we change the foreground colour | |||||
* and hence only print the background colour or its negative */ | |||||
voidrgb = palette[bg]; | |||||
voide = geterror(in, errvec, voidrgb, voidvec); | |||||
nvoidrgb = palette[7 - bg]; | |||||
nvoide = geterror(in, errvec, nvoidrgb, nvoidvec); | |||||
/* Precompute sub-error for the case where we print pixels (and hence | |||||
* don’t change the palette). It’s not the exact error because we should | |||||
* be propagating the error to the first pixel here. */ | |||||
if(depth > 0) | |||||
{ | |||||
int tmp[3] = { 0, 0, 0 }; | |||||
bestmove(in + 6 * 3, bg, fg, tmp, depth - 1, maxerror, &statice, NULL); | |||||
} | |||||
/* Check every likely command: | |||||
* 0-7: change foreground to 0-7 | |||||
* 8-15: change foreground to 0-7, print negative background | |||||
* 16-23: change background to 0-7 | |||||
* 24-31: change background to 0-7, print negative background | |||||
* 32: normal stuff | |||||
* 33: inverse video stuff */ | |||||
besterror = 0x7ffffff; | |||||
bestcommand = 0x10; | |||||
memcpy(bestrgb, voidrgb, 6 * 3 * sizeof(int)); | |||||
for(j = 0; j < 34; j++) | |||||
{ | |||||
static uint8_t const lookup[] = | |||||
{ | |||||
0x00, 0x04, 0x01, 0x05, 0x02, 0x06, 0x03, 0x07, | |||||
0x80, 0x84, 0x81, 0x85, 0x82, 0x86, 0x83, 0x87, | |||||
0x10, 0x14, 0x11, 0x15, 0x12, 0x16, 0x13, 0x17, | |||||
0x90, 0x94, 0x91, 0x95, 0x92, 0x96, 0x93, 0x97, | |||||
0x40, 0xc0 | |||||
}; | |||||
uint8_t newbg = bg, newfg = fg; | |||||
command = lookup[j]; | |||||
domove(command, &newbg, &newfg); | |||||
/* Keeping bg and fg is useless, because we could use standard | |||||
* pixel printing instead */ | |||||
if((command & 0x40) == 0x00 && newbg == bg && newfg == fg) | |||||
continue; | |||||
/* I *think* having newfg == newbg is useless, too, but I don’t | |||||
* want to miss some corner case where swapping bg and fg may be | |||||
* interesting, so we continue anyway. */ | |||||
#if 0 | |||||
/* Bit 6 off and bit 5 on seems illegal */ | |||||
if((command & 0x60) == 0x20) | |||||
continue; | |||||
/* Bits 6 and 5 off and bit 3 on seems illegal */ | |||||
if((command & 0x68) == 0x08) | |||||
continue; | |||||
#endif | |||||
if((command & 0xf8) == 0x00) | |||||
{ | |||||
curerror = voide; | |||||
rgb = voidrgb; | |||||
vec = voidvec; | |||||
} | |||||
else if((command & 0xf8) == 0x80) | |||||
{ | |||||
curerror = nvoide; | |||||
rgb = nvoidrgb; | |||||
vec = nvoidvec; | |||||
} | |||||
else if((command & 0xf8) == 0x10) | |||||
{ | |||||
rgb = palette[newbg]; | |||||
curerror = geterror(in, errvec, rgb, tmpvec); | |||||
vec = tmpvec; | |||||
} | |||||
else if((command & 0xf8) == 0x90) | |||||
{ | |||||
rgb = palette[7 - newbg]; | |||||
curerror = geterror(in, errvec, rgb, tmpvec); | |||||
vec = tmpvec; | |||||
} | |||||
else | |||||
{ | |||||
int const *bgcolor, *fgcolor; | |||||
if((command & 0x80) == 0x00) | |||||
{ | |||||
bgcolor = palette[bg]; fgcolor = palette[fg]; | |||||
} | |||||
else | |||||
{ | |||||
bgcolor = palette[7 - bg]; fgcolor = palette[7 - fg]; | |||||
} | |||||
memcpy(tmpvec, errvec, 3 * sizeof(int)); | |||||
curerror = 0; | |||||
for(i = 0; i < 6; i++) | |||||
{ | |||||
int vec1[3], vec2[3]; | |||||
int smalle1 = 0, smalle2 = 0; | |||||
memcpy(vec1, tmpvec, 3 * sizeof(int)); | |||||
memcpy(vec2, tmpvec, 3 * sizeof(int)); | |||||
for(c = 0; c < 3; c++) | |||||
{ | |||||
int delta1, delta2; | |||||
delta1 = clamp(in[i * 3 + c] + tmpvec[c]) - bgcolor[c]; | |||||
vec1[c] = delta1 * FS0 / FSX; | |||||
smalle1 += delta1 / 256 * delta1; | |||||
delta2 = clamp(in[i * 3 + c] + tmpvec[c]) - fgcolor[c]; | |||||
vec2[c] = delta2 * FS0 / FSX; | |||||
smalle2 += delta2 / 256 * delta2; | |||||
} | |||||
if(smalle1 < smalle2) | |||||
{ | |||||
memcpy(tmpvec, vec1, 3 * sizeof(int)); | |||||
memcpy(tmprgb + i * 3, bgcolor, 3 * sizeof(int)); | |||||
} | |||||
else | |||||
{ | |||||
memcpy(tmpvec, vec2, 3 * sizeof(int)); | |||||
memcpy(tmprgb + i * 3, fgcolor, 3 * sizeof(int)); | |||||
command |= (1 << (5 - i)); | |||||
} | |||||
} | |||||
/* Recompute full error */ | |||||
curerror += geterror(in, errvec, tmprgb, tmpvec); | |||||
rgb = tmprgb; | |||||
vec = tmpvec; | |||||
} | |||||
if(curerror > besterror) | |||||
continue; | |||||
/* Try to avoid bad decisions now that will have a high cost | |||||
* later in the line by making the next error more important than | |||||
* the current error. */ | |||||
curerror = curerror * 3 / 4; | |||||
if(depth == 0) | |||||
suberror = 0; /* It’s the end of the tree */ | |||||
else if((command & 0x68) == 0x00) | |||||
{ | |||||
bestmove(in + 6 * 3, newbg, newfg, vec, depth - 1, | |||||
besterror - curerror, &suberror, NULL); | |||||
#if 0 | |||||
/* Slight penalty for colour changes; they're hard to revert. The | |||||
* value of 2 was determined empirically. 1.5 is not enough and | |||||
* 3 is too much. */ | |||||
if(newbg != bg) | |||||
suberror = suberror * 10 / 8; | |||||
else if(newfg != fg) | |||||
suberror = suberror * 9 / 8; | |||||
#endif | |||||
} | |||||
else | |||||
suberror = statice; | |||||
if(curerror + suberror < besterror) | |||||
{ | |||||
besterror = curerror + suberror; | |||||
bestcommand = command; | |||||
memcpy(bestrgb, rgb, 6 * 3 * sizeof(int)); | |||||
} | |||||
} | |||||
*error = besterror; | |||||
if(out) | |||||
memcpy(out, bestrgb, 6 * 3 * sizeof(int)); | |||||
return bestcommand; | |||||
} | |||||
int main(int argc, char *argv[]) | |||||
{ | |||||
#if defined _WIN32 | |||||
PBITMAPINFO pbinfo; | |||||
BITMAPINFO binfo; | |||||
BITMAPFILEHEADER bfheader; | |||||
ULONG bisize; | |||||
HANDLE hfile; | |||||
HBITMAP tmp; | |||||
HDC hdc; | |||||
DWORD ret; | |||||
#else | |||||
SDL_Surface *tmp, *surface; | |||||
#endif | |||||
FILE *f; | |||||
uint8_t *pixels; | |||||
int *src, *dst, *srcl, *dstl; | |||||
int stride, x, y, depth, c; | |||||
if(argc < 2) | |||||
{ | |||||
fprintf(stderr, "Error: missing argument.\n"); | |||||
fprintf(stderr, "Usage: img2oric <image>\n"); | |||||
return 1; | |||||
} | |||||
#if defined _WIN32 | |||||
tmp = (HBITMAP)LoadImage(NULL, argv[1], IMAGE_BITMAP, | |||||
0, 0, LR_LOADFROMFILE); | |||||
#else | |||||
tmp = IMG_Load(argv[1]); | |||||
#endif | |||||
if(!tmp) | |||||
{ | |||||
fprintf(stderr, "Error: could not load image %s.\n", argv[1]); | |||||
#if defined _WIN32 | |||||
fprintf(stderr, "Maybe try with an 8-bpp or 24-bpp BMP file?\n"); | |||||
#endif | |||||
return 2; | |||||
} | |||||
f = fopen(ORICFILE ".TAP", "w"); | |||||
if(!f) | |||||
{ | |||||
fprintf(stderr, "Error: could not open %s.TAP for writing.\n", | |||||
ORICFILE); | |||||
return 3; | |||||
} | |||||
fwrite("\x16\x16\x16\x16\x24", 1, 5, f); | |||||
fwrite("\x00\xff\x80\x00\xbf\x3f\xa0\x00\x00", 1, 9, f); | |||||
fwrite(ORICFILE, 1, strlen(ORICFILE), f); | |||||
fwrite("\x00", 1, 1, f); | |||||
init_tables(); | |||||
/* Load the image into a friendly array of fast integers. We create it | |||||
* slightly bigger than the image so that we don’t have to care about | |||||
* borders when propagating the error later */ | |||||
src = calloc((WIDTH + 1) * (HEIGHT + 1) * 3, sizeof(int)); | |||||
dst = calloc((WIDTH + 1) * (HEIGHT + 1) * 3, sizeof(int)); | |||||
stride = (WIDTH + 1) * 3; | |||||
#if defined _WIN32 | |||||
hdc = CreateCompatibleDC(NULL); | |||||
SelectObject(hdc, tmp); | |||||
for(y = 0; y < HEIGHT; y++) | |||||
for(x = 0; x < WIDTH; x++) | |||||
{ | |||||
COLORREF color = GetPixel(hdc, x, y); | |||||
src[y * stride + x * 3] = ctoi(GetRValue(color) * 0x101); | |||||
src[y * stride + x * 3 + 1] = ctoi(GetGValue(color) * 0x101); | |||||
src[y * stride + x * 3 + 2] = ctoi(GetBValue(color) * 0x101); | |||||
for(c = 0; c < 3; c++) | |||||
dst[y * stride + x * 3 + c] = 0; | |||||
} | |||||
#else | |||||
/* FIXME: endianness */ | |||||
surface = SDL_CreateRGBSurface(SDL_SWSURFACE, WIDTH, HEIGHT, 32, | |||||
0xff0000, 0xff00, 0xff, 0x0); | |||||
SDL_BlitSurface(tmp, NULL, surface, NULL); | |||||
pixels = (uint8_t *)surface->pixels; | |||||
for(y = 0; y < HEIGHT; y++) | |||||
for(x = 0; x < WIDTH; x++) | |||||
for(c = 0; c < 3; c++) | |||||
{ | |||||
src[y * stride + x * 3 + c] | |||||
= ctoi(pixels[y * surface->pitch + x * 4 + 2 - c] * 0x101); | |||||
dst[y * stride + x * 3 + c] = 0; | |||||
} | |||||
#endif | |||||
/* Let the fun begin */ | |||||
for(y = 0; y < HEIGHT; y++) | |||||
{ | |||||
uint8_t bg = 0, fg = 7; | |||||
fprintf(stderr, "\rProcessing... %i%%", (y * 100 + 99) / HEIGHT); | |||||
for(x = 0; x < WIDTH; x += 6) | |||||
{ | |||||
int errvec[3] = { 0, 0, 0 }; | |||||
int dummy, i; | |||||
uint8_t command; | |||||
depth = (x + DEPTH < WIDTH) ? DEPTH : (WIDTH - x) / 6 - 1; | |||||
srcl = src + y * stride + x * 3; | |||||
dstl = dst + y * stride + x * 3; | |||||
/* Recursively compute and apply best command */ | |||||
command = bestmove(srcl, bg, fg, errvec, depth, 0x7fffff, | |||||
&dummy, dstl); | |||||
/* Propagate error */ | |||||
for(c = 0; c < 3; c++) | |||||
{ | |||||
for(i = 0; i < 6; i++) | |||||
{ | |||||
int error = srcl[i * 3 + c] - dstl[i * 3 + c]; | |||||
srcl[i * 3 + c + 3] = | |||||
clamp(srcl[i * 3 + c + 3] + error * FS0 / FSX); | |||||
srcl[i * 3 + c + stride - 3] += error * FS1 / FSX; | |||||
srcl[i * 3 + c + stride] += error * FS2 / FSX; | |||||
srcl[i * 3 + c + stride + 3] += error * FS3 / FSX; | |||||
} | |||||
for(i = -1; i < 7; i++) | |||||
srcl[i * 3 + c + stride] = clamp(srcl[i * 3 + c + stride]); | |||||
} | |||||
/* Iterate */ | |||||
domove(command, &bg, &fg); | |||||
/* Write byte to file */ | |||||
fwrite(&command, 1, 1, f); | |||||
} | |||||
} | |||||
fclose(f); | |||||
fprintf(stderr, " done.\n"); | |||||
/* Save everything */ | |||||
#if defined _WIN32 | |||||
for(y = 0; y < HEIGHT; y++) | |||||
for(x = 0; x < WIDTH; x++) | |||||
{ | |||||
uint8_t r = dst[y * stride + x * 3] / 0x100; | |||||
uint8_t g = dst[y * stride + x * 3 + 1] / 0x100; | |||||
uint8_t b = dst[y * stride + x * 3 + 2] / 0x100; | |||||
SetPixel(hdc, x, y, RGB(r, g, b)); | |||||
} | |||||
binfo.bmiHeader.biSize = sizeof(binfo.bmiHeader); | |||||
binfo.bmiHeader.biBitCount = 0; | |||||
GetDIBits(hdc, tmp, 0, 0, NULL, &binfo, DIB_RGB_COLORS); | |||||
switch(binfo.bmiHeader.biBitCount) | |||||
{ | |||||
case 24: | |||||
bisize = sizeof(BITMAPINFOHEADER); | |||||
break; | |||||
case 16: | |||||
case 32: | |||||
bisize = sizeof(BITMAPINFOHEADER) + sizeof(DWORD) * 3; | |||||
break; | |||||
default: | |||||
bisize = sizeof(BITMAPINFOHEADER) | |||||
+ sizeof(RGBQUAD) * (1 << binfo.bmiHeader.biBitCount); | |||||
break; | |||||
} | |||||
pbinfo = (PBITMAPINFO)GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, bisize); | |||||
memcpy(pbinfo, &binfo, sizeof(BITMAPINFOHEADER)); | |||||
bfheader.bfType = 0x4D42; /* "BM" */ | |||||
bfheader.bfSize = sizeof(BITMAPFILEHEADER) | |||||
+ bisize + pbinfo->bmiHeader.biSizeImage; | |||||
bfheader.bfReserved1 = 0; | |||||
bfheader.bfReserved2 = 0; | |||||
bfheader.bfOffBits = sizeof(BITMAPFILEHEADER) + bisize; | |||||
pixels = GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, | |||||
binfo.bmiHeader.biSizeImage); | |||||
GetDIBits(hdc, tmp, 0, pbinfo->bmiHeader.biHeight, | |||||
pixels, pbinfo, DIB_RGB_COLORS); | |||||
hfile = CreateFile(BMPFILE, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, | |||||
FILE_ATTRIBUTE_ARCHIVE, NULL); | |||||
WriteFile(hfile, &bfheader, sizeof(BITMAPFILEHEADER), &ret, NULL); | |||||
WriteFile(hfile, pbinfo, bisize, &ret, NULL); | |||||
WriteFile(hfile, pixels, pbinfo->bmiHeader.biSizeImage, &ret, NULL); | |||||
CloseHandle(hfile); | |||||
GlobalFree(pbinfo); | |||||
GlobalFree(pixels); | |||||
#else | |||||
for(y = 0; y < HEIGHT; y++) | |||||
for(x = 0; x < WIDTH; x++) | |||||
for(c = 0; c < 3; c++) | |||||
pixels[y * surface->pitch + x * 4 + 2 - c] | |||||
= itoc(dst[y * stride + x * 3 + c]) / 0x100; | |||||
SDL_SaveBMP(surface, BMPFILE); | |||||
#endif | |||||
return 0; | |||||
} | |||||
@@ -0,0 +1,139 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="Caca Labs - img2oric" /> | |||||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, colour quantisation, dithering, oric" /> | |||||
<title>Caca Labs - img2oric</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<img src="oric.png" width="200" height="130" | |||||
alt="Oric computer" style="float: left; border: 0px;" /> | |||||
<p> <tt>img2oric</tt> converts images to the Oric screen format. The <a | |||||
href="http://www.defence-force.org/computing/oric/gallery/index.htm">Oric | |||||
screen format</a> is one of the most twisted standards and very little artwork | |||||
exists for this vintage computer. It was therefore the perfect challenge for | |||||
the Caca Labs image processing team. </p> | |||||
<p> The graphical part of the Oric screen has 240×200 pixels and can only | |||||
display 8 different colours (black, blue, red, green, cyan, magenta, yellow | |||||
and white). Each horizontal group of 6 pixels can only use two different | |||||
colours: the foreground and the background colours. The background <i>or</i> | |||||
the foreground colour may also be changed (one at a time), but while doing | |||||
so the next 6 pixels cannot be chosen: they will use the background colour | |||||
instead. Finally, a special bit may be activated to display the current group | |||||
of pixels in reverse video. </p> | |||||
<h2 style="clear: both;"> Downloads </h2> | |||||
<p> No real downloads are available yet. However, the file <tt><a | |||||
href="img2oric.c">img2oric.c</a></tt> may be compiled on Linux to obtain an | |||||
almost functional, yet extremely slow (around 2 minutes to process an image on | |||||
a modern computer) program. </p> | |||||
<h2> Usage </h2> | |||||
<p> <tt>img2oric</tt> will output to <tt>output.bmp</tt>, an image file | |||||
containing the new version, and to <tt>OUTPUT.TAP</tt> which contains the | |||||
Oric-format file. </p> | |||||
<p> You can download a <a href="OUTPUT.TAP">sample <tt>OUTPUT.TAP</tt></a> | |||||
file as generated by <tt>img2oric</tt>. To load it into an Oric | |||||
computer, or an emulator such as <tt>xeuphoric</tt>, just type | |||||
<b><tt>HIRES:CLOAD"OUTPUT"</tt></b> and it will be immediately displayed: </p> | |||||
<p style="text-align: center;"> | |||||
<img src="real-oric.jpeg" width="360" height="338" class="matrix" alt="" /> | |||||
<br /> | |||||
<span style="font-size: 60%"><i>photography courtesy of André Chéramy</i></span> | |||||
</p> | |||||
<h2> Screenshots </h2> | |||||
<p> These images show how <tt>img2oric</tt> performs. The results may not seem | |||||
terribly clean, but they are probably better than anything that has been seen | |||||
so far on an Oric computer. </p> | |||||
<p> These first 4 images show the results on the same images than the ones | |||||
on Dbug’s <a href="http://www.defence-force.org/computing/oric/coding/annexe_3/pictconv/">PictConv</a> website, to illustrate the improvements over the | |||||
traditional RGB separation technique. </p> | |||||
<p style="text-align: center;"> | |||||
<img src="buffy.png" width="240" height="200" class="inline" alt="" /> | |||||
<img src="output-buffy.png" width="240" height="200" class="inline" alt="" /> | |||||
</p> | |||||
<p style="text-align: center;"> | |||||
<img src="mire.png" width="240" height="200" class="inline" alt="" /> | |||||
<img src="output-mire.png" width="240" height="200" class="inline" alt="" /> | |||||
</p> | |||||
<p style="text-align: center;"> | |||||
<img src="dog.png" width="240" height="200" class="inline" alt="" /> | |||||
<img src="output-dog.png" width="240" height="200" class="inline" alt="" /> | |||||
</p> | |||||
<p style="text-align: center;"> | |||||
<img src="lena.png" width="240" height="200" class="inline" alt="" /> | |||||
<img src="output-lena.png" width="240" height="200" class="inline" alt="" /> | |||||
</p> | |||||
<p> The following images show <tt>img2oric</tt>’s results with grayscale | |||||
images and cartoon images. </p> | |||||
<p style="text-align: center;"> | |||||
<img src="bufbw.png" width="240" height="200" class="inline" alt="" /> | |||||
<img src="output-bufbw.png" width="240" height="200" class="inline" alt="" /> | |||||
</p> | |||||
<p style="text-align: center;"> | |||||
<img src="homer.png" width="240" height="200" class="inline" alt="" /> | |||||
<img src="output-homer.png" width="240" height="200" class="inline" alt="" /> | |||||
</p> | |||||
<p> The following images use real Oric artwork, taken from the Buggy Boy | |||||
and the VIP 4 demos: they are almost pixel-perfect. </p> | |||||
<p style="text-align: center;"> | |||||
<img src="bb.png" width="240" height="200" class="inline" alt="" /> | |||||
<img src="output-bb.png" width="240" height="200" class="inline" alt="" /> | |||||
</p> | |||||
<p style="text-align: center;"> | |||||
<img src="eatme.png" width="240" height="200" class="inline" alt="" /> | |||||
<img src="output-eatme.png" width="240" height="200" class="inline" alt="" /> | |||||
</p> | |||||
<p> And finally, this is an animation whose frames were converted to Oric | |||||
colours using <tt>img2oric</tt>: </p> | |||||
<p style="text-align: center;"> | |||||
<img src="bear.gif" width="240" height="200" class="inline" alt="" /> | |||||
<img src="output-bear.gif" width="240" height="200" class="inline" alt="" /> | |||||
</p> | |||||
<h2> Credits </h2> | |||||
<p> <tt>img2oric</tt> was written by Sam Hocevar. Thanks to Jean-Yves | |||||
Lamoureux, Mickaël Pointier, Robert Chéramy, André Chéramy and Fabrice | |||||
Frances for their help, their work and the information they provided. </p> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,376 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="libcaca - Colour AsCii Art library" /> | |||||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||||
<title>libcaca - Colour AsCii Art library</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<img src="logo-caca.png" width="128" height="128" | |||||
alt="libcaca logo" class="caca" /> | |||||
<h2> Introduction </h2> | |||||
<p> <i>libcaca</i> is a graphics library that outputs text instead of pixels, | |||||
so that it can work on older video cards or text terminals. It is not unlike | |||||
the famous <a href="http://aa-project.sourceforge.net/aalib/">AAlib</a> | |||||
library, with the following improvements: </p> | |||||
<ul> | |||||
<li> Unicode support </li> | |||||
<li> 2048 available colours (some devices can only handle 16) </li> | |||||
<li> dithering of colour images </li> | |||||
<li> advanced text canvas operations (blitting, rotations) </li> | |||||
</ul> | |||||
<p> Libcaca works in a text terminal (and should thus work on all Unix | |||||
systems including Mac OS X) using the S-Lang or ncurses libraries. It also | |||||
works natively on DOS and Windows. </p> | |||||
<p> Libcaca was written by Sam Hocevar <<a | |||||
href="mailto:sam@zoy.org">sam@zoy.org</a>> and Jean-Yves Lamoureux | |||||
<<a href="mailto:jylam@lnxscene.org">jylam@lnxscene.org</a>>. It is | |||||
<a href="http://www.gnu.org/philosophy/free-sw.html">free software</a>, | |||||
and can be used, modified and distributed under the terms of the <a | |||||
href="http://sam.zoy.org/wtfpl/">Do What The Fuck You Want To Public | |||||
License</a>. </p> | |||||
<p style="text-align: center;"> | |||||
<a href="http://www.ohloh.net/projects/9011?ref=WidgetProjectThinBadge"><img src="http://www.ohloh.net/projects/9011/widgets/project_thin_badge.gif" width="100" height="16" alt="libcaca Ohloh metrics" /></a> | |||||
<a href="http://www.ohloh.net/projects/9018?ref=WidgetProjectThinBadge"><img src="http://www.ohloh.net/projects/9018/widgets/project_thin_badge.gif" width="100" height="16" alt="toilet Ohloh metrics" /></a> | |||||
</p> | |||||
<h2> News </h2> | |||||
<ul> | |||||
<li> <b>18 May 2008</b>: <a href="/wiki/zzuf">zzuf</a> 0.11 </li> | |||||
<li> <b>1 Apr 2008</b>: libcaca to be <a href="http://blog.thebehrens.net/2008/04/01/new-highly-portable-canvas-backend/">OpenOffice.org’s official multiplatform rendering backend</a> </li> | |||||
<li> <b>24 Feb 2008</b>: we are now using <a href="/wiki">Trac</a>! </li> | |||||
<li> <b>24 Jan 2008</b>: <a href="/labs/img2oric.html">img2oric</a>, the | |||||
first Caca Labs piece of research software </li> | |||||
<li> <b>28 Nov 2007</b>: libcaca 0.99.beta13 </li> | |||||
<li> <b>24 Oct 2007</b>: Report on <a href="/cacacon07/">CacaCon’07</a>, the | |||||
first international libcaca conference. </li> | |||||
<!-- old news | |||||
<li> <b>30 Sep 2007</b>: libcaca 0.99.beta12 </li> | |||||
<li> <b>16 Nov 2006</b>: libcaca 0.99.beta11 </li> | |||||
<li> <b>16 Nov 2006</b>: <a href="/toilet.html">TOIlet</a> 0.1 </li> | |||||
<li> <b>12 Nov 2006</b>: libcaca 0.99.beta10 </p> | |||||
<li> <b>6 Nov 2006</b>: libcaca 0.99.beta9 </p> | |||||
<li> <b>22 Oct 2006</b>: libcaca 0.99.beta8 </p> | |||||
<li> <b>4 Oct 2006</b>: libcaca 0.99.beta7 </p> | |||||
--> | |||||
</ul> | |||||
<img src="img/sample.png" width="128" height="128" | |||||
alt="libcaca rendering sample" class="caca" /> | |||||
<h2> Screenshots </h2> | |||||
<p> Here are a few <i>libcaca</i> screenshots. </p> | |||||
<table cellspacing="5" border="0"> | |||||
<tr> | |||||
<td align="center"> | |||||
<a href="img/stitch-80x45.png"><img alt="cacaview" | |||||
width="73" height="90" | |||||
src="img/tn-stitch-80x45.jpeg" /></a> | |||||
<br /><small><code>cacaview</code></small> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="img/cacaball-80x50.png"><img alt="cacaball" | |||||
width="101" height="90" | |||||
src="img/tn-cacaball-80x50.jpeg" /></a> | |||||
<br /><small><code>cacaball</code></small> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="img/cacaplas-80x50.png"><img alt="cacaplas" | |||||
width="101" height="90" | |||||
src="img/tn-cacaplas-80x50.jpeg" /></a> | |||||
<br /><small><code>cacaplas</code></small> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="img/truecolor-32x16.png"><img alt="truecolor" | |||||
width="87" height="90" | |||||
src="img/tn-truecolor-32x16.jpeg" /></a> | |||||
<br /><small>TrueColor</small> | |||||
</td> | |||||
<td align="center"> | |||||
</td> | |||||
</tr> | |||||
<tr> | |||||
<td align="center"> | |||||
<a href="img/unicode-80x24.png"><img alt="unicode" | |||||
width="120" height="75" | |||||
src="img/tn-unicode-80x24.jpeg" /></a> | |||||
<br /><small>Unicode</small> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="img/swallow-80x32.png"><img alt="swallow" | |||||
width="120" height="81" | |||||
src="img/tn-swallow-80x32.jpeg" /></a> | |||||
<br /><small>swallowing applications</small> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="img/rotate.png"><img alt="rotation" | |||||
width="75" height="90" | |||||
src="img/tn-rotate.jpeg" /></a> | |||||
<br /><small>canvas rotation</small> | |||||
</td> | |||||
<td align="center"> | |||||
</td> | |||||
<td align="center"> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
<p> See also the various export formats, generated from an old | |||||
<a href="lc-mw1.ans">ANSI file</a>: | |||||
<a href="export.png">PNG</a> (through TGA), | |||||
<a href="export.html">HTML</a>, | |||||
<a href="export.svg">SVG</a>, | |||||
<a href="export.ps">PostScript</a>. | |||||
</p> | |||||
<!-- | |||||
<p> Here are my first libcaca attempts. The first image is, | |||||
<code>cacaview</code>, the libcaca image viewer. Then, two | |||||
screenshots of my first port of an application to libcaca: the <a | |||||
href="http://www.videolan.org/vlc/">VLC</a> media player. The last | |||||
screenshots are from <code>cacafire</code> (the libcaca port of aafire) and | |||||
<code>cacaball</code> (a mini metaballs demo). </p> | |||||
<table cellspacing="5" border="0"> | |||||
<tr> | |||||
<td align="center"> | |||||
<a href="caca-stitch.png"><img alt="cacaview" | |||||
width="78" height="90" | |||||
src="tn-caca-stitch.jpeg" /><br /><code>cacaview</code></a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="caca-vlc.png"><img alt="VLC playing the Matrix: Revolutions" | |||||
width="120" height="74" | |||||
src="tn-caca-vlc.jpeg" /><br />VLC media player</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="caca-vlc3.png"><img alt="VLC playing a Dolby trailer" | |||||
width="120" height="74" | |||||
src="tn-caca-vlc3.jpeg" /><br />VLC media player</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="caca-fire.png"><img alt="cacafire" | |||||
width="120" height="87" | |||||
src="tn-caca-fire.jpeg" /><br /><code>cacafire</code></a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="caca-ball.png"><img alt="cacaball" | |||||
width="104" height="90" | |||||
src="tn-caca-ball.jpeg" /><br /><code>cacaball</code></a> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
<p> As with all image processing applications, I needed the obligatory <a | |||||
href="http://www-2.cs.cmu.edu/~chuck/lennapg/">Lenna</a> samples. From | |||||
left to right: the currently in development Floyd-Steinberg dithering, the | |||||
antialiasing introduced in libcaca 0.5, the new renderer in libcaca 0.2, no | |||||
dithering, ordered dithering, random dithering. </p> | |||||
<table cellspacing="5" border="0"> | |||||
<tr> | |||||
<td align="center"> | |||||
<a href="lenna-fs.png"><img alt="Lenna (Floyd-Steinberg)" | |||||
width="87" height="90" | |||||
src="tn-lenna-fs.jpeg" /><br />Floyd-Steinberg</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="lenna-antialias.png"><img alt="Lenna (antialiased)" | |||||
width="97" height="90" | |||||
src="tn-lenna-antialias.jpeg" /><br />antialiasing</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="lenna-new.png"><img alt="Lenna (new renderer)" | |||||
width="99" height="90" | |||||
src="tn-lenna-new.jpeg" /><br />new renderer</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="lenna-nodither.png"><img alt="Lenna (no dithering)" | |||||
width="99" height="90" | |||||
src="tn-lenna-nodither.jpeg" /><br />no dithering</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="lenna-ordered.png"><img alt="Lenna (ordered dithering)" | |||||
width="99" height="90" | |||||
src="tn-lenna-ordered.jpeg" /><br />ordered dithering</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="lenna-random.png"><img alt="Lenna (random dithering)" | |||||
width="99" height="90" | |||||
src="tn-lenna-random.jpeg" /><br />random dithering</a> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
<p> Here are a few examples of my libcaca patch for libSDL. Once there is a | |||||
libcaca backend for <a href="http://www.libsdl.org">libSDL</a>, any program | |||||
using SDL can automatically benefit from libcaca’s rendering routines. These | |||||
examples show <a href="http://www.frozen-bubble.org/">Frozen Bubble</a>, the | |||||
<a href="http://sabre.cobite.com/">SABRE</a> flight simulator, and the famous | |||||
<a href="http://www.idsoftware.com/games/doom/">Doom</a>. Frozen Bubble is | |||||
fully playable, but SABRE and Doom aren’t much due to the Ctrl and Shift keys | |||||
not being recognized (see the TODO list about that). </p> | |||||
<table cellspacing="5" border="0"> | |||||
<tr> | |||||
<td align="center"> | |||||
<a href="caca-fb.png"><img alt="ASCII art Frozen Bubble" | |||||
width="120" height="90" | |||||
src="tn-caca-fb.jpeg" /><br />Frozen Bubble</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="caca-sabre.png"><img alt="the SABRE flight simulator" | |||||
width="120" height="90" | |||||
src="tn-caca-sabre.jpeg" /><br />SABRE</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="caca-doom.png"><img alt="the Doom splash screen in ASCII art" | |||||
width="120" height="90" | |||||
src="tn-caca-doom.jpeg" /><br />Doom splash screen</a> | |||||
</td> | |||||
<td align="center"> | |||||
<a href="caca-doom2.png"><img alt="Doom in ASCII art" | |||||
width="120" height="90" | |||||
src="tn-caca-doom2.jpeg" /><br />first Doom level</a> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
<h2> Download libcaca </h2> | |||||
<p> libcaca is already in the Debian sid distribution. Debian woody users or | |||||
sid users in a hurry may use one of the following apt sources: (sorry, sarge | |||||
is not supported yet) </p> | |||||
<table class="leftmenu" cellspacing="5" cellpadding="0"> | |||||
<tr> | |||||
<td class="nowrap" valign="top"> | |||||
<code> | |||||
deb http://sam.zoy.org/projects/debian woody main<br /> | |||||
deb-src http://sam.zoy.org/projects/debian woody main<br /> | |||||
<br /> | |||||
deb http://sam.zoy.org/projects/debian sid main<br /> | |||||
deb-src http://sam.zoy.org/projects/debian sid main<br /> | |||||
</code> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
<p> Users of RPM-based distributions (Red Hat, Fedora, Mandrake) may find RPM | |||||
packages on the <a href="http://yarrow.freshrpms.net/rpm.html?id=552">Fresh | |||||
RPMs</a> page. If no package is available, you are encouraged | |||||
to build packages for your system using this SRPM (<a | |||||
href="libcaca-0.9-1.src.rpm">libcaca-0.9-1.src.rpm</a>, 176KB) and this simple | |||||
command line: </p> | |||||
<table class="leftmenu" cellspacing="5" cellpadding="0"> | |||||
<tr> | |||||
<td class="nowrap" valign="top"> | |||||
<code>rpm -<!>-rebuild libcaca-0.9-1.src.rpm</code> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
<p> BSD users should see the <a | |||||
href="http://www.netbsd.org/packages/graphics/libcaca/README.html">NetBSD port | |||||
page</a> and the <a href="http://www.freshports.org/graphics/libcaca/">FreeBSD | |||||
port page</a> (I am not aware of an OpenBSD port yet, but <a | |||||
href="http://news.gw.com/openbsd.ports/15502">this email</a> has | |||||
information on it), Gentoo users may find information on the <a | |||||
href="http://gentoo-portage.com/browse-program.php?program=6273">Gentoo | |||||
portage</a> and Slackware users have a package on <a | |||||
href="http://www.linuxpackages.net/pkg_details.php?id=2144">linuxpackages.net</a>. | |||||
</p> | |||||
<h2> Patch for libSDL </h2> | |||||
<p> This simple patch was quickly hacked from the AAlib video | |||||
driver. Apply it to the libSDL sources and configuree libSDL with | |||||
<code>-<!>-enable-video-caca</code>. Then use the <code>SDL_VIDEODRIVER</code> | |||||
environment variable to run your SDL programs with libcaca output, for | |||||
instance Frozen Bubble: </p> | |||||
<table class="leftmenu" cellspacing="5" cellpadding="0"> | |||||
<tr> | |||||
<td class="nowrap" valign="top"> | |||||
<code>SDL_VIDEODRIVER=caca frozen-bubble</code> | |||||
</td> | |||||
</tr> | |||||
</table> | |||||
<p> Download <a href="patch-libsdl1.2-libcaca0.7.diff">patch-libsdl1.2-libcaca0.7.diff</a> (to be used with the Debian unstable SDL sources and libcaca 0.7. </p> | |||||
<h2> Patches for VLC, xine, mplayer... </h2> | |||||
<p> The libcaca patch for the <a href="http://www.videolan.org/vlc/">VLC</a> | |||||
media player was already applied upstream. Check the CVS version. </p> | |||||
<p> There is a work in progress for <a href="http://xine.sf.net/">xine</a> | |||||
called cacaxine (see <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=3605187&forum_id=7131">this email</a>). Zeeshan Ali wrote a | |||||
<a href="http://gstreamer.sf.net/">GStreamer</a> plugin. I am not | |||||
aware of an <a href="http://mplayerhq.hu/">MPlayer</a> patch yet (but you | |||||
should not be using MPlayer anyway, because it sucks). </p> | |||||
<h2> Development </h2> | |||||
--> | |||||
<h2> Why? </h2> | |||||
<blockquote><p> | |||||
Que dites-vous ?... C’est inutile ?... Je le sais ! | |||||
<br />Mais on ne se bat pas dans l’espoir du succès ! | |||||
<br />Non ! non, c’est bien plus beau lorsque c’est inutile ! | |||||
<br /><small> -- Edmond Rostand, <i>Cyrano de Bergerac</i> </small> | |||||
</p></blockquote> | |||||
<p> I am perfectly aware that <i>libcaca</i> is the waste of time it looks to | |||||
be. No need to tell me about that. I urge you to read Théophile Gautier’s | |||||
preface to <i>Mademoiselle de Maupin</i>, which also gives an excellent | |||||
explanation for the name “libcaca”: </p> | |||||
<blockquote><p> | |||||
Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce | |||||
qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux | |||||
de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. - | |||||
L’endroit le plus utile d’une maison, ce sont les latrines. | |||||
</p></blockquote> | |||||
<p> As for the name “libcucul”, please refer to the pioneer of modernist | |||||
Polish fiction: </p> | |||||
<blockquote><p> | |||||
Mais contre le cucul, il n’y a pas de refuge. Courez après moi | |||||
si vous voulez, je m’enfuis la gueule entre les mains. Et voilà, | |||||
tralala, Zut à celui qui le lira ! | |||||
<br /><small> -- Witold Gombrowicz, <i>Ferdydurke</i> </small> | |||||
</p></blockquote> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,38 @@ | |||||
[40m[2J[40m | |||||
[7C[0;35mÜÜÜ[49CÜÜÜ | |||||
Ü[1;45mÜÜ[40mßßß[45mÜ[0;35mÜ ÜÜ[12CÜ[29CÜ[1;45mÜ[40mßßß[45mÜÜÜ[0;35mÜÜ | |||||
Ü[1;45mÜ[40mß[37mÜÜ[47m²²²[40mÜ[35mß[45mÜ[40mßß[45mÜÜ[0;35mÜ ÜÜ Ü[1;45mÜÜ[40mß[45mÜ[0;35mÜ ÜÜ[1;45mÜÜ[0;35mÜÜ ÜÜ[1;45mÜÜÜÜÜÜÜ[0;35mÜÜ ÜÜ[1;45mÜÜÜ[40mß[37mÜ[47m²²²[40mÜÜÜ[35mßß[45mÜ[0;35mÜ | |||||
Ü[1;45mÜ[40mß[37mÜ[47m²²²±±±²²[40mÜ[47m²²[40mÜÜ[35mß[45mÜ[0;35mÜ[1;45mÜ[40mßß[45mÜ[40mß[37mÜÜ[47m²[40mÜ[35mß[45mÜ[40mßß[37mÜÜ[35mßß[45mÜ[40mßß[37mÜÜÜÜÜÜÜ[35mßß[45mÜ[0;35mÜ[1;45mÜ[40mßß[37mÜÜ[35mßÝ[37mÞ[47m²²±²²²²²[40mÜ[35mß[45mÜ[0;35mÜ | |||||
[1;45mÞ[40mÝ[37mÞ[47m²±±°±²[40mß[47m²±±±±²²²[40mÜ[35mß[37mÜ[47m²²[40mÜß[47m²²±²[40mÝÜ[47m²²²²²²[40mÜß[47m²²²²²²²²²²[40mÜ[35mß[37mÜ[47m²²²²²[40mÜ [47m²²±±±±±²²[40mÝ[35mÞ[45mÝ[0;35mÝ | |||||
[1mÛ [37;47m²±±°°±[0mÝ [1mÞ[47m²²[0mß[1;47m²±±²²[40mÝÞ[47m±±±²[40mÜ[0mß[1;47m±±±²±±°[0mß[1;47m±°±²[1C²±±±°±±±²²ß[1C²±°±±±²[1C²²±°°±±[40mÛ [35mÛ[0;35mÛ | |||||
[1;45mÞ[40mÝ[0mÞ[1;47m±°[30m°°°±[40mÜ [0mß[1;35mÜÝ[0mÞ[1;47m²±±²²[1C°[0mÞ[1;47m°°±[0mÝÞ[1;47m°°±°[0mÛ Þ[1;47m° °±[0mÝÞ[1;47m±°° °°±[0mßßÜ[1;47m±±°[1C[0mß[1;47m°°±[0mÛ [1;47m±°°°°±[1C[35;40mÛ[0;35mÛ ÜÜ | |||||
Û[1mÛ [37;47m°[30m±±°±±²²[40mÜ[35mß[0mÜ[1;47m²±°°±²[0mÝ[1;30;47m°[40mÜ[47m°°°±[1C°°[37m°[30m°°±±°[37m°°[0mÛ [1;47m°[0mß Þ[1;30;47m° [37m°[0mÝÞ[1;47m°°°°[30m°°°[37m° °°[0mÝÞ[1;47m°°°[30m°[1C[35;40mÛ[0;35mÛÜ[1;45mÜÜ[40mßß[45mÜ[0;35mÜ | |||||
Þ[1;45mÞ[40mÝ[30mÞ[47m²²±±²²[40mßÜ[47m°[37m±°° °±±²[1C[30m±±±²[40mÝÞ[47m±±±°°±²²[40mß[0mß[1;35mÜ[30mß[35mÜÛ [30;47m±°°°°[1C±°°±±[40mß[47m±±° °°[1C[37m°[30m°°[0mÝ[1;35mÞÛßß[0mÜ[1;30mÜ[47m²²[40mÜ[35mß[45mÜ[0;35mÜ | |||||
ß[1;45mß[40mÜ[30mß[47m²²²[40mßÜ[47m²²±±°° °[37m°±[0mÝ[1;30mÞ[47m²²[40mßßÜ[47m²²[40mß[47m²±±°[40mÜÜÜ[35mßßßÛÝ[30mÞ[47m±±°±±±[1C²±±[40mÝ Þ[47m±±°±±[40mÝ[47m±±°±[0mÜÜ[1;30;47m°°°±±±²²[40mÜ[35mß[45mÜ[0;35mÜ ß[1;45mß[40mÜ[30mß [47m²²²±±°° °°[37m°°[1C[35;40mÜÜÜ[45mßß[40mÜÜÜ[45mß[40mÜ[30mß[47m²²±±±°°°[40mÜÜÜß[47m²²²[40mßÜ[47m²²²²²[1C²²±±±²²[1C²±±±°°°±±±±±²²²[40mÜ[35mß[5C[0;35mÛ[1;45mßß[40mÜ[30mßß[47m²²²±±±°°[40mÝ[35mÞ[45mÝ[0;35mßÛÜ ßßß ß[1;45mß[40mÜÜ[30mß[47m²²±±²²²²[40mß[35mÜ[30mß[35mÜ[45mß[40mÜÜ[30mßßß[35mÜÜÜ[30mß[47m²²²²[40mÝÞ[47m²²²²±±±±²²²²²[40mßß[35mÜ[45mß[3C[0;35mÜ[1;45mÜ[40mß[45mÜ[0;35mÜß[1;45mßß[40mÜÜ[30mßß[47m²²²[40mß[35mÜ[45mßÜÜ[40mßß[45mÜ[0;35mÜ Ü[1;45mÜ[40mßßßßÜÜ[30mßß[47m²²[40mß[35mÜÛßßßß[45mÜÜßßß[0;35mÛÛß[1;45mß[40mÜÜ[30mßß[35mÜÜÜ[30mßßß[47m²²²²[40mßßß[35mÜÜ[45mßß[0;35mß | |||||
Ü[1;45mÜ[40mß[37mÜ[47m²[40mÜ[35mß[45mÜÜ[0;35mÜ[45m [40mß[1;45mßß[40mÜÜÜÛßß[37mÜÜ[47m²²[40mÜ[35mß[45mÜÜ[40mß[0;31mÜ[1;41m°±²±[0;31mÜ[1;35mßÛÛÜÜß[37mÜÜ[47m²²²²[40mÜÜ[35mßß[45mÜ[40mßß[45mÜÜ[0;35mÛß[1;45mßß[0;35mÛ[1;45mÜ[40mß[37mÜÜÜ [35mÜÜ[45mßßß[0;35mßß | |||||
Þ[1;45mÞ[40mÝ[37mÞ[47m²²²[40mÜÜ[35mßß[45mÜÜ[0;35mÜ[45m [1mÜ[40mß[37mÜ[47m²²²±±±²²[2C[0;31mÛ[1;41m°±²[37m²[31m²±[0;31mÛ [1;35mÛß[37mÜ[47m²²²±±°±²²²²[40mÜß[47m²[40mÜÜ[35mß[45mÜ[0;35mÜÛ[1mÛ [37;47m²²²²²²[40mÜ[35mß[45mÜ[0;35mÜ | |||||
Û[1mÛ [37;47m²²±±±²²[40mÜÜ[35mßß[45mÜ[40mÝ[0mÞ[1;47m±±±°°°±±[1C[35;40mÛÜ[0;31mß[1;41m°±²±[0;31mß[1;35mÜÛÝ[37mÞ[47m²²±±°°°°±±±²²[40mÛ [47m²²²[40mÜ[35mß[45mÜ[40mß[37mÞ[47m²²±±±²²[40mÝ[35mÞ[45mÝ[0;35mÝ | |||||
Þ[1;45mÞ[40mÝ[37mÞ[47m²±±°±±²²²²[40mÜ[35mß [37;47m±°°°[30m°[37m°°±[0mÝ[1;35mßÜÛÜÜÜÜßß[37mÜ [47m±±°°°[30m°[37m°[0mß[1;47m±°°°±±[0mÝÞ[1;47m²±±²[40mÜÜ[47m±±±±°°°±²²[1C[35;40mÛ[0;35mÛ | |||||
Û[1mÛ [37;47m²²±°°°±±±±[0mÝ[1;35mßÝ[0mÞ[1;47m±°[30m° [37m°°°[1C²[40mÜÜ[35mßß[37mÜÜ[47m²²²[40mÝ [47m°°[30m±±°[37m°[0mÝÞ[1;30;47m°°±[37m°[0mßÜ[1;47m±°°°±±±°°°° [30m°[37m°°°±[0mÝ[1;35mÞ[45mÝ[0;35mÝ | |||||
Û[1mÛ [37;47m±°[30m°°°[37m°°°°[0mÜ[1;47m°[0mÜ[1;47m°°[30m° °°[37m°[0mÝ Þ[1;47m²²±±°±±±²[2C[30;40mÜ[0mÜÜÜß[1;30;47m°±[40mÜ[0mß[1;30;47m±[40mß[0mÜ[1;30;47m°[37m°°[30m° °[37m°°[0mßßß[1;47m°[30m°° °°[37m°°[0mÝ[1;35mÞ[45mÝ[0;35mÝ | |||||
[5CÛ[1mÛ [37;47m°[30m±±±°°°±[37m°[30m²[37m°[30m±±°°°±±[2C[37m±°°°[30m°°[37m°°°[0mÝ[1;30mÜ[47m±±°°°°°±±±[40mÜ [47m±±°°°°±±[40mÝÜ[47m±±°°°°°±²[1C[35;40mÛ[0;35mÛ | |||||
[6Cß[1;45mß[40mÜ[30mß[47m²²±±±±²[40mß[47m²²±±±²²[2C±±±²²²²±±±[1C²²²±±±±±²²²[40mß[35mÜÛ [30;47m²²±±±±²²[40mÞ[47m²±±±±±±²[40mÝ[35mÞ[45mÝ[0;35mÝ | |||||
[8Cß[1;45mß[40mÜ[30mßß[47m²²[40mß[35mÜ[45mß[40mÜ[30mßß[47m²²[40mß Ü[47m²²²[40mßß[35mÜÜ[30mßß[47m²²²[40mÜßß[47m²²²²²²[40mß[35mÜ[45mß[0;35mßß[1;45mß[40mÜ[30mß[47m²²²²[40mßß[35mÜ[30mßß[47m²²²²²[40mß[35mÜ[45mß[0;35mß | |||||
[10Cß[1;45mßß[40mÜÜ[45mß[0;35mß ß[1;45mßß[40mÜÜ[45mß[40mÛÜÜÜÜÛ[45mß[0;35mÛ[1;45mÜ[40mÛÛÜÜÜÜ[45mßß[40mÜÜÜÜÜÜÛ[45mÜÜÜ[0;35mÜ ß[1;45mß[40mÜÜÜÜ[45mßß[0;35mß[1;45mßß[40mÜÜÜÜÜ[45mß[0;35mß | |||||
[13Cßß[6CÛ[1mÛß[0;34mÜÜÜÜÜÜ[1;35mßß[0;34mÜÜÜÜÜ[1;35mß[45mÜ[0;35mÜÜÛÛÛ[1;45mÜ[40mß[0;34mÜÜÜÜÜ[1;35mß[45mÜ[0;35mÜ ßßßß[5Cßßßßß | |||||
[21CÛ[1mÛ [44m [34m°±²[40mÜ [35mÛ [44m [34m°±²[1C[35;40mÛÜßßßßßÛ [44m [34m°±²[1C[35;40mÛ[45mß[0;35mß | |||||
[21CÛ[1mÛ [44m [34m°±²[1C[35;40mÛÛ [44m [34m°±²[40mß[35mÜ [44m [34m°±[0;34mßÛ [44m [1m°±²[40mß[35mÜ[45mÜ[0;35mÜ | |||||
[21CÛ[1mÛ [44m [34m°±²[1C[35;40mÛÛ [44m [34m°±²[40mÜ[35mß [44m [34m°±²[40mÛ [44m °±²[40mÜ[35mß[45mÜ[0;35mÜ | |||||
[22Cß[1;45mß[40mÜÜÜÜ[45mß[0;35mßß[1;45mß[40mÜÜÜÜÜ[45mß[40mÛÜÜÜÜÜ[45mßß[40mÜÜÜÜÜ[45mß[0;35mß | |||||
[24Cßßßß ßßßßß ßßßßßß ßßßßß | |||||
[27C[1;37mM O R T A L W [30mi [37mS H | |||||
[30mÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ | |||||
[18C[0;35mPiL HQ [1;37mþ [0;35mSyndrome Couriers HQ [1;37mþ [0;35mGODS WHQ | |||||
[16C16.8 Duals [1;37mþ [0;35m8i8.XxX.XxXx [1;37mþ [0;35m8 Node Ringdown | |||||
[25CS: QUAZiMODEM & CiPHER | |||||
[20CCO'S: LORD THiNKER THE MOZARELLO | |||||
[19CSLiCE & DiCE [1;37mþ [0;35mHURRiCAN [1;37mþ [0;35mRAZOR BLADE | |||||
[1;30mßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß[24CANSi BY [37mLUC [30m< [34mAiM [30m'[0;34mNiNE FO[1;30m' > | |||||
[0m |
@@ -0,0 +1,50 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="libcaca SVN mailing-list" /> | |||||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||||
<title>libcaca SVN mailing-list</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="doxygen.css" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<?php | |||||
$page = $_GET['page']; | |||||
$page = eregi_replace("[^a-z0-9_]", "", $page); | |||||
$file = $_SERVER["DOCUMENT_ROOT"]."/list-svn/".$page.".html"; | |||||
if(file_exists($file)) | |||||
{ | |||||
$f = fopen($file, 'r'); | |||||
$data = fread($f, filesize($file)); | |||||
fclose($f); | |||||
$data = eregi_replace(".*<body>", "", $data); | |||||
$data = eregi_replace("</body>.*", "", $data); | |||||
echo $data; | |||||
} | |||||
else | |||||
{ | |||||
?><p>Mailing-list error.</p><? | |||||
} | |||||
?> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,50 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="libcaca Trac mailing-list" /> | |||||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||||
<title>libcaca Trac mailing-list</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="doxygen.css" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<?php | |||||
$page = $_GET['page']; | |||||
$page = eregi_replace("[^a-z0-9_]", "", $page); | |||||
$file = $_SERVER["DOCUMENT_ROOT"]."/list-trac/".$page.".html"; | |||||
if(file_exists($file)) | |||||
{ | |||||
$f = fopen($file, 'r'); | |||||
$data = fread($f, filesize($file)); | |||||
fclose($f); | |||||
$data = eregi_replace(".*<body>", "", $data); | |||||
$data = eregi_replace("</body>.*", "", $data); | |||||
echo $data; | |||||
} | |||||
else | |||||
{ | |||||
?><p>Mailing-list error.</p><? | |||||
} | |||||
?> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,58 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="libcaca mailing-list" /> | |||||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||||
<title>libcaca mailing-list</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="doxygen.css" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<?php | |||||
$page = $_GET['page']; | |||||
$page = eregi_replace("[^a-z0-9_]", "", $page); | |||||
$file = $_SERVER["DOCUMENT_ROOT"]."/list/".$page.".html"; | |||||
if(file_exists($file)) | |||||
{ | |||||
$f = fopen($file, 'r'); | |||||
$data = fread($f, filesize($file)); | |||||
fclose($f); | |||||
$data = eregi_replace(".*<body>", "", $data); | |||||
$data = eregi_replace("</body>.*", "", $data); | |||||
echo $data; | |||||
} | |||||
else | |||||
{ | |||||
?> | |||||
<p> There are three libcaca mailing-lists: </p> | |||||
<ul> | |||||
<li> libcaca (<a href="/list/">thread index</a>, <a href="/list/maillist.html">date index</a>) </li> | |||||
<li> libcaca-svn (<a href="/list-svn/">thread index</a>, <a href="/list-svn/maillist.html">date index</a>) </li> | |||||
<li> libcaca-trac (<a href="/list-trac/">thread index</a>, <a href="/list-trac/maillist.html">date index</a>) </li> | |||||
</ul> | |||||
<? | |||||
} | |||||
?> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,185 @@ | |||||
/* | |||||
* CSS for libcaca | |||||
* $Id$ | |||||
*/ | |||||
/* Common attributes */ | |||||
html, body { | |||||
padding: 0; | |||||
border: 0; | |||||
margin: 0; | |||||
height: 100%; | |||||
} | |||||
body { | |||||
color: black; | |||||
background: url('/browser/www/img/back3.png?format=raw') repeat left top; | |||||
background-color: black; | |||||
} | |||||
body, td, h1, h2, h3, p { | |||||
font-family: serif; | |||||
} | |||||
h1 { | |||||
font-size: 1.6em; | |||||
font-variant: small-caps; | |||||
color: #002200; | |||||
background-color: inherit; | |||||
} | |||||
h2, h3 { | |||||
text-indent: 0.5em; | |||||
border-style: solid; | |||||
border-color: #88aa77; | |||||
background-color: inherit; | |||||
} | |||||
h2 { | |||||
font-size: 1.3em; | |||||
font-variant: small-caps; | |||||
color: #224422; | |||||
border-width: 0 0 2px 0; | |||||
} | |||||
h3 { | |||||
font-size: 1.1em; | |||||
color: #335533; | |||||
border-width: 0 0 1px 0; | |||||
} | |||||
p { | |||||
text-indent: 1em; | |||||
text-align: inherit; | |||||
} | |||||
/* Layout-specific attributes */ | |||||
div.gradleft { | |||||
/* no longer used */ | |||||
} | |||||
div.gradright { | |||||
/* no longer used */ | |||||
} | |||||
div.top, div.main, div.bottom { | |||||
width: 800px; | |||||
display: table-caption; | |||||
color: inherit; | |||||
background-color: #dddddd; | |||||
background: url('/browser/www/img/back4.png?format=raw') repeat left top; | |||||
padding: 0 10px 0 10px; | |||||
border-style: solid; | |||||
border-width: 2px 2px 0 2px; | |||||
border-color: black; | |||||
margin: 0 auto 0 auto; | |||||
text-align: justify; | |||||
} | |||||
div.top { | |||||
border-width: 2px; | |||||
margin-top: 10px; | |||||
} | |||||
div.main { | |||||
padding: 5px 10px 5px 10px; | |||||
height: 100%; | |||||
} | |||||
div.bottom { | |||||
clear: both; | |||||
position: relative; | |||||
border-width: 0 2px 2px 2px; | |||||
margin-bottom: 5px; | |||||
} | |||||
div.bottombar { | |||||
font-family: monospace; | |||||
font-weight: bold; | |||||
font-size: smaller; | |||||
padding: 0; | |||||
border-style: solid; | |||||
border-width: 2px 0 0 0; | |||||
border-color: #88aa77; | |||||
} | |||||
img.caca { | |||||
border: solid 2px #88aa77; | |||||
margin: 10px 20px 10px 20px; | |||||
float: right; | |||||
} | |||||
img.inline, img.inlinetop { | |||||
border: solid 2px #88aa77; | |||||
padding: 2px; | |||||
} | |||||
img.inlinetop { | |||||
vertical-align: top; | |||||
} | |||||
img.math { | |||||
vertical-align: middle; | |||||
margin-left: 10px; | |||||
margin-right: 10px; | |||||
} | |||||
img.matrix { | |||||
vertical-align: top; | |||||
margin-right: 30px; | |||||
margin-top: 10px; | |||||
} | |||||
div.toilet { | |||||
border: solid 2px #88aa77; | |||||
padding-left: 10px; | |||||
padding-right: 10px; | |||||
} | |||||
p.toilet { | |||||
text-indent: 0; | |||||
} | |||||
p.dashit { | |||||
float: right; | |||||
text-align: right; | |||||
font-size: smaller; | |||||
font-style: italic; | |||||
} | |||||
a:link { color: #33aa55; background-color: inherit; } | |||||
a:visited { color: #117722; background-color: inherit; } | |||||
a:hover { color: #aa22dd; background-color: inherit; text-decoration: none; } | |||||
a:active { color: #cc22ff; background-color: inherit; } | |||||
/* Top menubar handling */ | |||||
div.menubar { | |||||
text-align: center; | |||||
color: inherit; | |||||
padding: 8px 0px; | |||||
} | |||||
a.menubutton { | |||||
color: black; | |||||
background: url('/browser/www/img/back4.png?format=raw') repeat left top; | |||||
background-color: #dddddd; | |||||
text-decoration: none; | |||||
font-weight: bold; | |||||
border: solid black 2px; | |||||
padding: 4px 10px 4px 10px; | |||||
margin: 0 5px 0 5px; | |||||
} | |||||
a.menubutton:link { | |||||
color: black; | |||||
} | |||||
a.menubutton:hover { | |||||
color: #ffffff; | |||||
border-color: #ffffff; | |||||
background: inherit; | |||||
} | |||||
@@ -0,0 +1,54 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="libcaca manual" /> | |||||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||||
<title>libcaca manual</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="doxygen.css" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<div style="text-align: center;"> | |||||
<a href="/manual/">^^^ Index</a> | |||||
</div> | |||||
<?php | |||||
$page = $_GET['page']; | |||||
$page = eregi_replace("[^-a-z0-9_]", "", $page); | |||||
$file = $_SERVER["DOCUMENT_ROOT"]."/manual/".$page.".html"; | |||||
if(file_exists($file)) | |||||
{ | |||||
$f = fopen($file, 'r'); | |||||
$data = fread($f, filesize($file)); | |||||
fclose($f); | |||||
$data = eregi_replace(".*<body>", "", $data); | |||||
$data = eregi_replace("</body>.*", "", $data); | |||||
echo $data; | |||||
} | |||||
else | |||||
{ | |||||
?><p>Documentation error.</p><? | |||||
} | |||||
?> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,36 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="libcaca - neercs" /> | |||||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||||
<title>libcaca - neercs</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<h2> neercs </h2> | |||||
<p> neercs is a work-in-progress libcaca project. More later. </p> | |||||
<h2> Screenshots </h2> | |||||
<p style="text-align: center;"><img src="neercs-thumbnails.png" width="570" | |||||
height="503" alt="neercs sample" /></p> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,34 @@ | |||||
# $Id$ | |||||
# Do not crawl CVS and .svn directories (they are 403 Forbidden anyway) | |||||
User-agent: * | |||||
Disallow: CVS | |||||
Disallow: .svn | |||||
# Prevent excessive search engine hits | |||||
Disallow: /cgi-bin/trac.cgi | |||||
Disallow: /log | |||||
# "This robot collects content from the Internet for the sole purpose of | |||||
# helping educational institutions prevent plagiarism. [...] we compare | |||||
# student papers against the content we find on the Internet to see if we | |||||
# can find similarities." (http://www.turnitin.com/robot/crawlerinfo.html) | |||||
# --> fuck off. | |||||
User-Agent: TurnitinBot | |||||
Disallow: / | |||||
# "NameProtect engages in crawling activity in search of a wide range of | |||||
# brand and other intellectual property violations that may be of interest | |||||
# to our clients." (http://www.nameprotect.com/botinfo.html) | |||||
# --> fuck off. | |||||
User-Agent: NPBot | |||||
Disallow: / | |||||
# "iThenticate® is a new service we have developed to combat the piracy | |||||
# of intellectual property and ensure the originality of written work for | |||||
# publishers, non-profit agencies, corporations, and newspapers." | |||||
# (http://www.slysearch.com/) | |||||
# --> fuck off. | |||||
User-Agent: SlySearch | |||||
Disallow: / | |||||
@@ -0,0 +1,157 @@ | |||||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||||
<head> | |||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||||
<meta name="GENERATOR" content="vim" /> | |||||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||||
<meta name="Description" content="Libcaca study - Bibliography" /> | |||||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib, dithering, thresholding" /> | |||||
<title>Libcaca study - Bibliography</title> | |||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||||
<style type="text/css"> | |||||
li { padding-bottom: 0.5em; } | |||||
</style> | |||||
</head> | |||||
<body> | |||||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||||
<p> <span style="color: #aa0000; font-weight: bold;">Warning</span>: this | |||||
document is still work in progress. Feel free to send comments but do not | |||||
consider it final material. </p> | |||||
<div style="float: left;"> | |||||
<a href="part6.html">Photographic mosaics <<<</a> | |||||
</div> | |||||
<div style="float: right;"> | |||||
<a href="source.html">>>> Source code</a> | |||||
</div> | |||||
<div style="text-align: center;"> | |||||
<a href="index.html">^^^ Index</a> | |||||
</div> | |||||
<h2> Bibliography </h2> | |||||
<ul> | |||||
<li> [1] Victor Ostromoukhov. <i>A Simple and Efficient Error-Diffusion | |||||
Algorithm</i>. In Proceedings of SIGGRAPH 2001, in ACM Computer Graphics, | |||||
Annual Conference Series, pp. 567–572, 2001 </li> | |||||
<li> [2] Jamie Hutchinson. <i>Culture, Communication, and an Information Age | |||||
Madonna</i>. IEEE Professional Communication Society Newsletter, Volume 45, | |||||
Number 3, pp. 1, 5–7, 2001 </li> | |||||
<li> [3] V. Ostromoukhov, <i>Reproduction couleur par trames irrégulières | |||||
et semi-régulières</i>, Ph.D. Thesis No.1330, EPFL, Lausanne, Switzerland, | |||||
1995 </li> | |||||
<li> [4] J. Allebach and Q. Lin, <i>FM screen design using DBS algorithm</i>, | |||||
in Proc. IEEE International Conference on Image Processing (ICIP ’96), vol. | |||||
1, pp. 549–552, Lausanne, Switzerland, September 1996 </li> | |||||
<li> [5] R.W. Floyd, L. Steinberg, <i>An adaptive algorithm for spatial grey | |||||
scale</i>. Proceedings of the Society of Information Display 17, 75–77 | |||||
(1976) </li> | |||||
<li> [6] P. Stucki, <i>MECCA - a multiple error correcting computation | |||||
algorithm for bi-level image hard copy reproduction</i>. Research report | |||||
RZ1060, IBM Research Laboratory, Zurich, Switzerland, 1981 </li> | |||||
<li> [7] J. F. Jarvis, C. N. Judice and W. H. Ninke, <i>A Survey of | |||||
Techniques for the Display of Continuous Tone Pictures on Bi-level | |||||
Displays</i>. Computer Graphics and Image Processing, 5 13–40, 1976 </li> | |||||
<li> [8] J. Shiau and Z. Fan, <i>Method for Quantization Gray Level Pixel | |||||
Data with Extended Distribution Set</i>, U.S. patent 5,353,127, 1994 </li> | |||||
<li> [9] R. Silvers. <i>Digital composition of a mosaic image</i>, U.S. | |||||
patent 6,137,498, Oct. 2000 </li> | |||||
<li> [10] Daniel Burkes, <i>Presentation of the Burkes error filter for use | |||||
in preparing continuous-tone images for presentation on bi-level devices</i>, | |||||
in LIB 15 (Publications), CIS Graphics Support Forum, September 15, 1988 | |||||
(unpublished) </li> | |||||
<li> [11] Frankie Sierra, in LIB 17 (Developer’s Den), CIS Graphics Support | |||||
Forum (unpublished) </li> | |||||
<li> [12] Bill Atkinson, private correspondence with John Balestrieri, | |||||
January 2003 (unpublished) </li> | |||||
<li> [13] Robert Ulichney, <i>Digital Halftoning</i>, The MIT Press, | |||||
Cambridge, Mass. (1987) </li> | |||||
<li> [14] D.E. Knuth, <i>Digital Halftones by Dot Diffusion</i>, ACM | |||||
Transcripts on Graphics, 6(4), 1987, 245-273 </li> | |||||
<li> [15] T.C. Chan, K.S. Chen (Apple Computer, Inc.), <i>Method and system | |||||
for halftoning by tiling subsets of a threshold array over portions of an | |||||
image</i>, U.S. patent 5,761,347, 1998 </li> | |||||
<li> [16] Éric Brasseur, <i>Gamma error in picture scaling</i>, World Wide | |||||
Web, <code>http://www.4p8.com/eric.brasseur/gamma.html</code>, August 2007 | |||||
</li> | |||||
<li> [17] B. Bayer, <i>Color imaging array</i>, in U.S. patent 3,971,065, | |||||
1976 </li> | |||||
<li> [18] R.A. Ulichney (Digital Equipment Corporation), <i>Void and cluster | |||||
apparatus and method for generating dither templates</i>, in U.S. patent | |||||
5,535,020, 1992 </li> | |||||
<li> [19] H. Ancin, A. Bhattacharjya and J. Shu (Seiko Epson Corporation), | |||||
<i>Void-and-cluster dither-matrix generation for better half-tone | |||||
uniformity</i>, in U.S. patent 6,088,512, 1997 </li> | |||||
<li> [20] J.S. Arney, P.G. Anderson, S. Ganawan, <i>Error Diffusion and | |||||
Edge Enhancement: Raster Versus Omni-Directional Processing</i>, Western NY | |||||
Conference on Image Processing, Rochester, NY, September 9, 2001 </li> | |||||
<li> [21] Robert Ulichney, <i>Spatial Extent of Void and Cluster Finding | |||||
Filters</i>, IS&T’s 11th International Congress on Non-Impact Printing | |||||
Technologies, Oct. 29-Nov 3, 1995 </li> | |||||
<li> [22] Alejo Hausner, <i>Graph-order dithering</i>, proceedings of SPIE -- | |||||
Volume 6058 Color Imaging XI, 1996 </li> | |||||
<li> [23] N. Damera-Venkata, B.L. Evans, <i> FM halftoning via block error | |||||
diffusion</i>, proceedings of the 2001 International Conference on Image | |||||
Processing, 2001 </li> | |||||
<li> [24] R.V. Klassen, R. Eschbach, and K. Bharat, <i>Vector diffusion | |||||
in a distorted colour space</i>, proceedings of IS&T’s 47th Annual | |||||
Conference, 1994, pp. 489–491 </li> | |||||
<li> [25] D. Shaked, N. Arad, A. Fitzhugh, and I. Sobel, <i>Ink relocation | |||||
for color halftones</i>, proceedings of IS&T Image Processing, Image | |||||
Quality, Image Capture Systems Conference, Portland, OR, 1998, pp. 340–343 | |||||
</li> | |||||
<li> [26] T. Riemersma, <i>A Balanced Dither Algorithm</i>, C/C++ Users | |||||
Journal, volume 16, issue 12, December 1998 </li> | |||||
</ul> | |||||
<div style="float: left;"> | |||||
<a href="part6.html">Photographic mosaics <<<</a> | |||||
</div> | |||||
<div style="float: right;"> | |||||
<a href="source.html">>>> Source code</a> | |||||
</div> | |||||
<div style="text-align: center;"> | |||||
<a href="index.html">^^^ Index</a> | |||||
</div> | |||||
<?php $rev = '$Id$'; | |||||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||||
</body> | |||||
</html> |
@@ -0,0 +1,222 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
<svg | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:cc="http://web.resource.org/cc/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:svg="http://www.w3.org/2000/svg" | |||||
xmlns="http://www.w3.org/2000/svg" | |||||
xmlns:xlink="http://www.w3.org/1999/xlink" | |||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
width="256" | |||||
height="256" | |||||
id="svg5471" | |||||
sodipodi:version="0.32" | |||||
inkscape:version="0.45.1" | |||||
version="1.0" | |||||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||||
sodipodi:docname="fig1-2-1.svg" | |||||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||||
inkscape:export-filename="fig1-2-1.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90"> | |||||
<defs | |||||
id="defs5473"> | |||||
<linearGradient | |||||
id="linearGradient3404"> | |||||
<stop | |||||
style="stop-color:#000000;stop-opacity:1;" | |||||
offset="0" | |||||
id="stop3406" /> | |||||
<stop | |||||
style="stop-color:#ffffff;stop-opacity:1;" | |||||
offset="1" | |||||
id="stop3408" /> | |||||
</linearGradient> | |||||
<marker | |||||
inkscape:stockid="Arrow1Send" | |||||
orient="auto" | |||||
refY="0" | |||||
refX="0" | |||||
id="Arrow1Send" | |||||
style="overflow:visible"> | |||||
<path | |||||
id="path4296" | |||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " | |||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" | |||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | |||||
</marker> | |||||
</defs> | |||||
<sodipodi:namedview | |||||
id="base" | |||||
pagecolor="#ffffff" | |||||
bordercolor="#666666" | |||||
borderopacity="1.0" | |||||
gridtolerance="10000" | |||||
guidetolerance="10" | |||||
objecttolerance="10" | |||||
inkscape:pageopacity="0.0" | |||||
inkscape:pageshadow="2" | |||||
inkscape:zoom="1.6337563" | |||||
inkscape:cx="188.4865" | |||||
inkscape:cy="139.54181" | |||||
inkscape:document-units="px" | |||||
inkscape:current-layer="layer1" | |||||
width="256px" | |||||
height="256px" | |||||
showgrid="true" | |||||
gridempspacing="8" | |||||
inkscape:window-width="1400" | |||||
inkscape:window-height="1007" | |||||
inkscape:window-x="0" | |||||
inkscape:window-y="0" | |||||
inkscape:grid-points="true" /> | |||||
<metadata | |||||
id="metadata5476"> | |||||
<rdf:RDF> | |||||
<cc:Work | |||||
rdf:about=""> | |||||
<dc:format>image/svg+xml</dc:format> | |||||
<dc:type | |||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||||
</cc:Work> | |||||
</rdf:RDF> | |||||
</metadata> | |||||
<g | |||||
inkscape:label="Layer 1" | |||||
inkscape:groupmode="layer" | |||||
id="layer1"> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 41,215 L 232,24" | |||||
id="path2325" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3245" | |||||
d="M 40,214 L 104,214" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
<image | |||||
xlink:href="gradient256bw.png" | |||||
sodipodi:absref="gradient256bw.png" | |||||
width="24" | |||||
height="192" | |||||
id="image3412" | |||||
x="16" | |||||
y="24" /> | |||||
<image | |||||
xlink:href="grad1-2-1.png" | |||||
sodipodi:absref="grad1-2-1.png" | |||||
width="24" | |||||
height="192" | |||||
id="image3368" | |||||
x="216" | |||||
y="-232" | |||||
transform="matrix(0,1,-1,0,0,0)" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 36,72 L 44,72" | |||||
id="path2377" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 232,220 L 232,212" | |||||
id="path3259" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 40,16 L 40,216 L 240,216" | |||||
id="path136" | |||||
sodipodi:nodetypes="ccc" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" /> | |||||
<path | |||||
id="path3212" | |||||
d="M 36,120 L 44,120" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 88,220 L 88,212" | |||||
id="path3218" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
id="path3220" | |||||
d="M 136,220 L 136,212" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 184,220 L 184,212" | |||||
id="path3222" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
id="path3256" | |||||
d="M 36,24 L 44,24" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
inkscape:export-ydpi="90" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-filename="path4482.png" | |||||
id="path3240" | |||||
d="M 36,168 L 44,168" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 104,120 L 168,120" | |||||
id="path3249" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3251" | |||||
d="M 168,24 L 232,24" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3253" | |||||
d="M 104,120 L 104,216" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 168,24 L 168,120" | |||||
id="path3255" | |||||
sodipodi:nodetypes="cc" /> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="129.79779" | |||||
y="163.31921" | |||||
id="text2187" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2189" | |||||
x="129.79779" | |||||
y="163.31921">mean error: 0.139</tspan><tspan | |||||
sodipodi:role="line" | |||||
x="129.79779" | |||||
y="178.31921" | |||||
id="tspan2191">max error: 0.333</tspan></text> | |||||
</g> | |||||
</svg> |
@@ -0,0 +1,242 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
<svg | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:cc="http://web.resource.org/cc/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:svg="http://www.w3.org/2000/svg" | |||||
xmlns="http://www.w3.org/2000/svg" | |||||
xmlns:xlink="http://www.w3.org/1999/xlink" | |||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
width="256" | |||||
height="256" | |||||
id="svg5471" | |||||
sodipodi:version="0.32" | |||||
inkscape:version="0.45.1" | |||||
version="1.0" | |||||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||||
sodipodi:docname="fig1-2-2.svg" | |||||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||||
inkscape:export-filename="fig1-2-2.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90"> | |||||
<defs | |||||
id="defs5473"> | |||||
<linearGradient | |||||
id="linearGradient3404"> | |||||
<stop | |||||
style="stop-color:#000000;stop-opacity:1;" | |||||
offset="0" | |||||
id="stop3406" /> | |||||
<stop | |||||
style="stop-color:#ffffff;stop-opacity:1;" | |||||
offset="1" | |||||
id="stop3408" /> | |||||
</linearGradient> | |||||
<marker | |||||
inkscape:stockid="Arrow1Send" | |||||
orient="auto" | |||||
refY="0" | |||||
refX="0" | |||||
id="Arrow1Send" | |||||
style="overflow:visible"> | |||||
<path | |||||
id="path4296" | |||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " | |||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" | |||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | |||||
</marker> | |||||
</defs> | |||||
<sodipodi:namedview | |||||
id="base" | |||||
pagecolor="#ffffff" | |||||
bordercolor="#666666" | |||||
borderopacity="1.0" | |||||
gridtolerance="10000" | |||||
guidetolerance="10" | |||||
objecttolerance="10" | |||||
inkscape:pageopacity="0.0" | |||||
inkscape:pageshadow="2" | |||||
inkscape:zoom="2.3104803" | |||||
inkscape:cx="130.61435" | |||||
inkscape:cy="123.6191" | |||||
inkscape:document-units="px" | |||||
inkscape:current-layer="layer1" | |||||
width="256px" | |||||
height="256px" | |||||
showgrid="true" | |||||
gridempspacing="8" | |||||
inkscape:window-width="1400" | |||||
inkscape:window-height="1007" | |||||
inkscape:window-x="0" | |||||
inkscape:window-y="0" | |||||
inkscape:grid-points="true" /> | |||||
<metadata | |||||
id="metadata5476"> | |||||
<rdf:RDF> | |||||
<cc:Work | |||||
rdf:about=""> | |||||
<dc:format>image/svg+xml</dc:format> | |||||
<dc:type | |||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||||
</cc:Work> | |||||
</rdf:RDF> | |||||
</metadata> | |||||
<g | |||||
inkscape:label="Layer 1" | |||||
inkscape:groupmode="layer" | |||||
id="layer1"> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 41,215 L 232,24" | |||||
id="path2325" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3245" | |||||
d="M 40,214 L 79,214" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
<image | |||||
xlink:href="gradient256bw.png" | |||||
sodipodi:absref="gradient256bw.png" | |||||
width="24" | |||||
height="192" | |||||
id="image3412" | |||||
x="16" | |||||
y="24" /> | |||||
<image | |||||
xlink:href="grad1-2-2.png" | |||||
sodipodi:absref="grad1-2-2.png" | |||||
width="24" | |||||
height="192" | |||||
id="image3368" | |||||
x="216" | |||||
y="-232" | |||||
transform="matrix(0,1,-1,0,0,0)" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 36,72 L 44,72" | |||||
id="path2377" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 232,220 L 232,212" | |||||
id="path3259" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 40,16 L 40,216 L 240,216" | |||||
id="path136" | |||||
sodipodi:nodetypes="ccc" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" /> | |||||
<path | |||||
id="path3212" | |||||
d="M 36,120 L 44,120" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 88,220 L 88,212" | |||||
id="path3218" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
id="path3220" | |||||
d="M 136,220 L 136,212" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 184,220 L 184,212" | |||||
id="path3222" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
id="path3256" | |||||
d="M 36,24 L 44,24" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
inkscape:export-ydpi="90" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-filename="path4482.png" | |||||
id="path3240" | |||||
d="M 36,168 L 44,168" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 79,168 L 117,168" | |||||
id="path3249" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3251" | |||||
d="M 194,24 L 232,24" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3253" | |||||
d="M 79,168 L 79,214" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 155,72 L 155,120" | |||||
id="path3255" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path2179" | |||||
d="M 117,120 L 155,120" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 117,120 L 117,168" | |||||
id="path2181" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 155,72 L 194,72" | |||||
id="path2183" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path2185" | |||||
d="M 194,24 L 194,72" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="135.79778" | |||||
y="169.31921" | |||||
id="text2187" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2189" | |||||
x="135.79778" | |||||
y="169.31921">mean error: 0.075</tspan><tspan | |||||
sodipodi:role="line" | |||||
x="135.79778" | |||||
y="184.31921" | |||||
id="tspan2191">max error: 0.2</tspan></text> | |||||
</g> | |||||
</svg> |
@@ -0,0 +1,222 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
<svg | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:cc="http://web.resource.org/cc/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:svg="http://www.w3.org/2000/svg" | |||||
xmlns="http://www.w3.org/2000/svg" | |||||
xmlns:xlink="http://www.w3.org/1999/xlink" | |||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
width="256" | |||||
height="256" | |||||
id="svg5471" | |||||
sodipodi:version="0.32" | |||||
inkscape:version="0.45.1" | |||||
version="1.0" | |||||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||||
sodipodi:docname="fig1-2-3.svg" | |||||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||||
inkscape:export-filename="fig1-2-3.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90"> | |||||
<defs | |||||
id="defs5473"> | |||||
<linearGradient | |||||
id="linearGradient3404"> | |||||
<stop | |||||
style="stop-color:#000000;stop-opacity:1;" | |||||
offset="0" | |||||
id="stop3406" /> | |||||
<stop | |||||
style="stop-color:#ffffff;stop-opacity:1;" | |||||
offset="1" | |||||
id="stop3408" /> | |||||
</linearGradient> | |||||
<marker | |||||
inkscape:stockid="Arrow1Send" | |||||
orient="auto" | |||||
refY="0" | |||||
refX="0" | |||||
id="Arrow1Send" | |||||
style="overflow:visible"> | |||||
<path | |||||
id="path4296" | |||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " | |||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" | |||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | |||||
</marker> | |||||
</defs> | |||||
<sodipodi:namedview | |||||
id="base" | |||||
pagecolor="#ffffff" | |||||
bordercolor="#666666" | |||||
borderopacity="1.0" | |||||
gridtolerance="10000" | |||||
guidetolerance="10" | |||||
objecttolerance="10" | |||||
inkscape:pageopacity="0.0" | |||||
inkscape:pageshadow="2" | |||||
inkscape:zoom="2.3104803" | |||||
inkscape:cx="105.41566" | |||||
inkscape:cy="106.16408" | |||||
inkscape:document-units="px" | |||||
inkscape:current-layer="layer1" | |||||
width="256px" | |||||
height="256px" | |||||
showgrid="true" | |||||
gridempspacing="8" | |||||
inkscape:window-width="1400" | |||||
inkscape:window-height="1007" | |||||
inkscape:window-x="0" | |||||
inkscape:window-y="0" | |||||
inkscape:grid-points="true" /> | |||||
<metadata | |||||
id="metadata5476"> | |||||
<rdf:RDF> | |||||
<cc:Work | |||||
rdf:about=""> | |||||
<dc:format>image/svg+xml</dc:format> | |||||
<dc:type | |||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||||
</cc:Work> | |||||
</rdf:RDF> | |||||
</metadata> | |||||
<g | |||||
inkscape:label="Layer 1" | |||||
inkscape:groupmode="layer" | |||||
id="layer1"> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 41,215 L 232,24" | |||||
id="path2325" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3245" | |||||
d="M 40,214 L 88,214" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
<image | |||||
xlink:href="gradient256bw.png" | |||||
sodipodi:absref="gradient256bw.png" | |||||
width="24" | |||||
height="192" | |||||
id="image3412" | |||||
x="16" | |||||
y="24" /> | |||||
<image | |||||
xlink:href="grad1-2-3.png" | |||||
sodipodi:absref="grad1-2-3.png" | |||||
width="24" | |||||
height="192" | |||||
id="image3368" | |||||
x="216" | |||||
y="-232" | |||||
transform="matrix(0,1,-1,0,0,0)" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 36,72 L 44,72" | |||||
id="path2377" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 232,220 L 232,212" | |||||
id="path3259" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 40,16 L 40,216 L 240,216" | |||||
id="path136" | |||||
sodipodi:nodetypes="ccc" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" /> | |||||
<path | |||||
id="path3212" | |||||
d="M 36,120 L 44,120" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 88,220 L 88,212" | |||||
id="path3218" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
id="path3220" | |||||
d="M 136,220 L 136,212" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 184,220 L 184,212" | |||||
id="path3222" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
id="path3256" | |||||
d="M 36,24 L 44,24" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
inkscape:export-ydpi="90" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-filename="path4482.png" | |||||
id="path3240" | |||||
d="M 36,168 L 44,168" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 88,120 L 184,120" | |||||
id="path3249" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3251" | |||||
d="M 184,24 L 232,24" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3253" | |||||
d="M 88,120 L 88,214" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 184,24 L 184,120" | |||||
id="path3255" | |||||
sodipodi:nodetypes="cc" /> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="129.79779" | |||||
y="163.31921" | |||||
id="text2187" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2189" | |||||
x="129.79779" | |||||
y="163.31921">mean error: 0.125</tspan><tspan | |||||
sodipodi:role="line" | |||||
x="129.79779" | |||||
y="178.31921" | |||||
id="tspan2191">max error: 0.25</tspan></text> | |||||
</g> | |||||
</svg> |
@@ -0,0 +1,242 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
<svg | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:cc="http://web.resource.org/cc/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:svg="http://www.w3.org/2000/svg" | |||||
xmlns="http://www.w3.org/2000/svg" | |||||
xmlns:xlink="http://www.w3.org/1999/xlink" | |||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
width="256" | |||||
height="256" | |||||
id="svg5471" | |||||
sodipodi:version="0.32" | |||||
inkscape:version="0.45.1" | |||||
version="1.0" | |||||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||||
sodipodi:docname="fig1-2-4.svg" | |||||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||||
inkscape:export-filename="fig1-2-4.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90"> | |||||
<defs | |||||
id="defs5473"> | |||||
<linearGradient | |||||
id="linearGradient3404"> | |||||
<stop | |||||
style="stop-color:#000000;stop-opacity:1;" | |||||
offset="0" | |||||
id="stop3406" /> | |||||
<stop | |||||
style="stop-color:#ffffff;stop-opacity:1;" | |||||
offset="1" | |||||
id="stop3408" /> | |||||
</linearGradient> | |||||
<marker | |||||
inkscape:stockid="Arrow1Send" | |||||
orient="auto" | |||||
refY="0" | |||||
refX="0" | |||||
id="Arrow1Send" | |||||
style="overflow:visible"> | |||||
<path | |||||
id="path4296" | |||||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " | |||||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" | |||||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | |||||
</marker> | |||||
</defs> | |||||
<sodipodi:namedview | |||||
id="base" | |||||
pagecolor="#ffffff" | |||||
bordercolor="#666666" | |||||
borderopacity="1.0" | |||||
gridtolerance="10000" | |||||
guidetolerance="10" | |||||
objecttolerance="10" | |||||
inkscape:pageopacity="0.0" | |||||
inkscape:pageshadow="2" | |||||
inkscape:zoom="2.3104803" | |||||
inkscape:cx="143.13828" | |||||
inkscape:cy="152.07584" | |||||
inkscape:document-units="px" | |||||
inkscape:current-layer="layer1" | |||||
width="256px" | |||||
height="256px" | |||||
showgrid="true" | |||||
gridempspacing="8" | |||||
inkscape:window-width="1400" | |||||
inkscape:window-height="1007" | |||||
inkscape:window-x="0" | |||||
inkscape:window-y="0" | |||||
inkscape:grid-points="true" /> | |||||
<metadata | |||||
id="metadata5476"> | |||||
<rdf:RDF> | |||||
<cc:Work | |||||
rdf:about=""> | |||||
<dc:format>image/svg+xml</dc:format> | |||||
<dc:type | |||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||||
</cc:Work> | |||||
</rdf:RDF> | |||||
</metadata> | |||||
<g | |||||
inkscape:label="Layer 1" | |||||
inkscape:groupmode="layer" | |||||
id="layer1"> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 41,215 L 232,24" | |||||
id="path2325" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3245" | |||||
d="M 40,214 L 64,214" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
<image | |||||
xlink:href="gradient256bw.png" | |||||
sodipodi:absref="gradient256bw.png" | |||||
width="24" | |||||
height="192" | |||||
id="image3412" | |||||
x="16" | |||||
y="24" /> | |||||
<image | |||||
xlink:href="grad1-2-4.png" | |||||
sodipodi:absref="grad1-2-4.png" | |||||
width="24" | |||||
height="192" | |||||
id="image3368" | |||||
x="216" | |||||
y="-232" | |||||
transform="matrix(0,1,-1,0,0,0)" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 36,72 L 44,72" | |||||
id="path2377" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 232,220 L 232,212" | |||||
id="path3259" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 40,16 L 40,216 L 240,216" | |||||
id="path136" | |||||
sodipodi:nodetypes="ccc" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" /> | |||||
<path | |||||
id="path3212" | |||||
d="M 36,120 L 44,120" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 88,220 L 88,212" | |||||
id="path3218" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
id="path3220" | |||||
d="M 136,220 L 136,212" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
d="M 184,220 L 184,212" | |||||
id="path3222" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
id="path3256" | |||||
d="M 36,24 L 44,24" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
inkscape:export-filename="path4482.png" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-ydpi="90" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
inkscape:export-ydpi="90" | |||||
inkscape:export-xdpi="90" | |||||
inkscape:export-filename="path4482.png" | |||||
id="path3240" | |||||
d="M 36,168 L 44,168" | |||||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 64,168 L 112,168" | |||||
id="path3249" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3251" | |||||
d="M 208,24 L 232,24" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path3253" | |||||
d="M 64,168 L 64,214" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 160,72 L 160,120" | |||||
id="path3255" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path2179" | |||||
d="M 112,120 L 160,120" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 112,120 L 112,168" | |||||
id="path2181" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||||
d="M 160,72 L 208,72" | |||||
id="path2183" | |||||
sodipodi:nodetypes="cc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path2185" | |||||
d="M 208,24 L 208,72" | |||||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="135.79778" | |||||
y="169.31921" | |||||
id="text2187" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2189" | |||||
x="135.79778" | |||||
y="169.31921">mean error: 0.0625</tspan><tspan | |||||
sodipodi:role="line" | |||||
x="135.79778" | |||||
y="184.31921" | |||||
id="tspan2191">max error: 0.125</tspan></text> | |||||
</g> | |||||
</svg> |
@@ -0,0 +1,120 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
<svg | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:cc="http://web.resource.org/cc/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:svg="http://www.w3.org/2000/svg" | |||||
xmlns="http://www.w3.org/2000/svg" | |||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
width="744.09448819" | |||||
height="1052.3622047" | |||||
id="svg2" | |||||
sodipodi:version="0.32" | |||||
inkscape:version="0.45.1" | |||||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||||
sodipodi:docname="fig2-3-1.svg" | |||||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||||
inkscape:export-filename="fig2-3-1.png" | |||||
inkscape:export-xdpi="60" | |||||
inkscape:export-ydpi="60"> | |||||
<defs | |||||
id="defs4" /> | |||||
<sodipodi:namedview | |||||
id="base" | |||||
pagecolor="#ffffff" | |||||
bordercolor="#666666" | |||||
borderopacity="1.0" | |||||
gridtolerance="10000" | |||||
guidetolerance="10" | |||||
objecttolerance="10" | |||||
inkscape:pageopacity="0.0" | |||||
inkscape:pageshadow="2" | |||||
inkscape:zoom="2.8" | |||||
inkscape:cx="101.33764" | |||||
inkscape:cy="1016.8391" | |||||
inkscape:document-units="px" | |||||
inkscape:current-layer="layer1" | |||||
showgrid="true" | |||||
inkscape:window-width="1075" | |||||
inkscape:window-height="847" | |||||
inkscape:window-x="0" | |||||
inkscape:window-y="0" | |||||
inkscape:grid-points="true" /> | |||||
<metadata | |||||
id="metadata7"> | |||||
<rdf:RDF> | |||||
<cc:Work | |||||
rdf:about=""> | |||||
<dc:format>image/svg+xml</dc:format> | |||||
<dc:type | |||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||||
</cc:Work> | |||||
</rdf:RDF> | |||||
</metadata> | |||||
<g | |||||
inkscape:label="Layer 1" | |||||
inkscape:groupmode="layer" | |||||
id="layer1"> | |||||
<rect | |||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
id="rect2160" | |||||
width="118" | |||||
height="118" | |||||
x="6" | |||||
y="8.3621826" | |||||
inkscape:export-xdpi="60" | |||||
inkscape:export-ydpi="60" | |||||
inkscape:export-filename="fig2-3-1.png" /> | |||||
<path | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 7,67.36218 L 123,67.36218 M 65,9.36218 L 65,125.36218" | |||||
id="rect4103" | |||||
sodipodi:nodetypes="cccc" /> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="14.029541" | |||||
y="47.447662" | |||||
id="text4106" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan4108" | |||||
x="14.029541" | |||||
y="47.447662">0.2</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2167" | |||||
y="107.44766" | |||||
x="14.029541" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="107.44766" | |||||
x="14.029541" | |||||
id="tspan2169" | |||||
sodipodi:role="line">0.6</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2171" | |||||
y="47.447662" | |||||
x="74.029541" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="47.447662" | |||||
x="74.029541" | |||||
id="tspan2173" | |||||
sodipodi:role="line">0.8</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="74.029541" | |||||
y="107.44766" | |||||
id="text2175" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2177" | |||||
x="74.029541" | |||||
y="107.44766">0.4</tspan></text> | |||||
</g> | |||||
</svg> |
@@ -0,0 +1,360 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
<svg | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:cc="http://web.resource.org/cc/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:svg="http://www.w3.org/2000/svg" | |||||
xmlns="http://www.w3.org/2000/svg" | |||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
width="744.09448819" | |||||
height="1052.3622047" | |||||
id="svg2" | |||||
sodipodi:version="0.32" | |||||
inkscape:version="0.45.1" | |||||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||||
sodipodi:docname="fig2-3-1b.svg" | |||||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||||
inkscape:export-filename="fig2-3-1b.png" | |||||
inkscape:export-xdpi="60" | |||||
inkscape:export-ydpi="60"> | |||||
<defs | |||||
id="defs4" /> | |||||
<sodipodi:namedview | |||||
id="base" | |||||
pagecolor="#ffffff" | |||||
bordercolor="#666666" | |||||
borderopacity="1.0" | |||||
gridtolerance="10000" | |||||
guidetolerance="10" | |||||
objecttolerance="10" | |||||
inkscape:pageopacity="0.0" | |||||
inkscape:pageshadow="2" | |||||
inkscape:zoom="1.4" | |||||
inkscape:cx="168.37462" | |||||
inkscape:cy="891.07511" | |||||
inkscape:document-units="px" | |||||
inkscape:current-layer="layer1" | |||||
showgrid="true" | |||||
inkscape:window-width="1075" | |||||
inkscape:window-height="847" | |||||
inkscape:window-x="0" | |||||
inkscape:window-y="0" | |||||
inkscape:grid-points="true" /> | |||||
<metadata | |||||
id="metadata7"> | |||||
<rdf:RDF> | |||||
<cc:Work | |||||
rdf:about=""> | |||||
<dc:format>image/svg+xml</dc:format> | |||||
<dc:type | |||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||||
</cc:Work> | |||||
</rdf:RDF> | |||||
</metadata> | |||||
<g | |||||
inkscape:label="Layer 1" | |||||
inkscape:groupmode="layer" | |||||
id="layer1"> | |||||
<path | |||||
sodipodi:nodetypes="ccccc" | |||||
id="path3287" | |||||
d="M 6,8.3621826 L 362,8.3621826 L 362,244.36218 L 6,244.36218 L 6,8.3621826 z " | |||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 6,246.36218 L 6,8.3621826 L 364,8.3621826" | |||||
id="rect2160" | |||||
sodipodi:nodetypes="ccc" /> | |||||
<path | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 7,67.36218 L 363,67.36218 M 65,9.36218 L 65,245.36218" | |||||
id="rect4103" | |||||
sodipodi:nodetypes="cccc" /> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="14.029541" | |||||
y="47.447662" | |||||
id="text4106" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan4108" | |||||
x="14.029541" | |||||
y="47.447662">0.2</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2167" | |||||
y="107.44766" | |||||
x="14.029541" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="107.44766" | |||||
x="14.029541" | |||||
id="tspan2169" | |||||
sodipodi:role="line">0.6</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2171" | |||||
y="47.447662" | |||||
x="74.029541" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="47.447662" | |||||
x="74.029541" | |||||
id="tspan2173" | |||||
sodipodi:role="line">0.8</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="74.029541" | |||||
y="107.44766" | |||||
id="text2175" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2177" | |||||
x="74.029541" | |||||
y="107.44766">0.4</tspan></text> | |||||
<path | |||||
sodipodi:nodetypes="cccc" | |||||
id="path2168" | |||||
d="M 7,127.36218 L 363,127.36218 M 125,9.36218 L 125,245.36218" | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 7,187.36218 L 363,187.36218 M 185,9.36218 L 185,245.36218" | |||||
id="path2170" | |||||
sodipodi:nodetypes="cccc" /> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path2172" | |||||
d="M 245,9.36218 L 245,245.36218" | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2174" | |||||
y="47.447662" | |||||
x="134.02954" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="47.447662" | |||||
x="134.02954" | |||||
id="tspan2176" | |||||
sodipodi:role="line">0.2</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="134.02954" | |||||
y="107.44766" | |||||
id="text2178" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2180" | |||||
x="134.02954" | |||||
y="107.44766">0.6</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="194.02954" | |||||
y="47.447662" | |||||
id="text2182" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2184" | |||||
x="194.02954" | |||||
y="47.447662">0.8</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2186" | |||||
y="107.44766" | |||||
x="194.02954" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="107.44766" | |||||
x="194.02954" | |||||
id="tspan2188" | |||||
sodipodi:role="line">0.4</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="134.02954" | |||||
y="167.44766" | |||||
id="text2190" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2192" | |||||
x="134.02954" | |||||
y="167.44766">0.2</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2194" | |||||
y="227.44766" | |||||
x="134.02954" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="227.44766" | |||||
x="134.02954" | |||||
id="tspan2196" | |||||
sodipodi:role="line">0.6</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2198" | |||||
y="167.44766" | |||||
x="194.02954" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="167.44766" | |||||
x="194.02954" | |||||
id="tspan2200" | |||||
sodipodi:role="line">0.8</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2206" | |||||
y="167.44766" | |||||
x="14.029541" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="167.44766" | |||||
x="14.029541" | |||||
id="tspan2208" | |||||
sodipodi:role="line">0.2</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="14.029541" | |||||
y="227.44766" | |||||
id="text2210" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2212" | |||||
x="14.029541" | |||||
y="227.44766">0.6</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="74.029541" | |||||
y="167.44766" | |||||
id="text2214" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2216" | |||||
x="74.029541" | |||||
y="167.44766">0.8</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2218" | |||||
y="227.44766" | |||||
x="74.029541" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="227.44766" | |||||
x="74.029541" | |||||
id="tspan2220" | |||||
sodipodi:role="line">0.4</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2270" | |||||
y="167.44766" | |||||
x="254.02954" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="167.44766" | |||||
x="254.02954" | |||||
id="tspan2272" | |||||
sodipodi:role="line">0.2</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="274.02954" | |||||
y="221.44766" | |||||
id="text2274" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2276" | |||||
x="274.02954" | |||||
y="221.44766">...</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="254.02954" | |||||
y="47.447662" | |||||
id="text2286" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2288" | |||||
x="254.02954" | |||||
y="47.447662">0.2</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2290" | |||||
y="107.44766" | |||||
x="254.02954" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="107.44766" | |||||
x="254.02954" | |||||
id="tspan2292" | |||||
sodipodi:role="line">0.6</tspan></text> | |||||
<path | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 305,9.36218 L 305,245.36218" | |||||
id="path2213" | |||||
sodipodi:nodetypes="cc" /> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2215" | |||||
y="47.447662" | |||||
x="314.02954" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="47.447662" | |||||
x="314.02954" | |||||
id="tspan2217" | |||||
sodipodi:role="line">0.8</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="314.02954" | |||||
y="107.44766" | |||||
id="text2219" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2221" | |||||
x="314.02954" | |||||
y="107.44766">0.4</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2212" | |||||
y="221.44766" | |||||
x="334.02954" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="221.44766" | |||||
x="334.02954" | |||||
id="tspan2214" | |||||
sodipodi:role="line">...</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="334.02954" | |||||
y="161.44766" | |||||
id="text2216" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2218" | |||||
x="334.02954" | |||||
y="161.44766">...</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="214.02954" | |||||
y="221.44766" | |||||
id="text2220" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2222" | |||||
x="214.02954" | |||||
y="221.44766">...</tspan></text> | |||||
</g> | |||||
</svg> |
@@ -0,0 +1,177 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
<svg | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:cc="http://web.resource.org/cc/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:svg="http://www.w3.org/2000/svg" | |||||
xmlns="http://www.w3.org/2000/svg" | |||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
width="744.09448819" | |||||
height="1052.3622047" | |||||
id="svg2" | |||||
sodipodi:version="0.32" | |||||
inkscape:version="0.45.1" | |||||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||||
sodipodi:docname="fig2-3-1c.svg" | |||||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||||
inkscape:export-filename="fig2-3-1c.png" | |||||
inkscape:export-xdpi="60" | |||||
inkscape:export-ydpi="60"> | |||||
<defs | |||||
id="defs4" /> | |||||
<sodipodi:namedview | |||||
id="base" | |||||
pagecolor="#ffffff" | |||||
bordercolor="#666666" | |||||
borderopacity="1.0" | |||||
gridtolerance="10000" | |||||
guidetolerance="10" | |||||
objecttolerance="10" | |||||
inkscape:pageopacity="0.0" | |||||
inkscape:pageshadow="2" | |||||
inkscape:zoom="0.98994949" | |||||
inkscape:cx="454.04411" | |||||
inkscape:cy="1036.1848" | |||||
inkscape:document-units="px" | |||||
inkscape:current-layer="layer1" | |||||
showgrid="true" | |||||
inkscape:window-width="1075" | |||||
inkscape:window-height="847" | |||||
inkscape:window-x="0" | |||||
inkscape:window-y="0" | |||||
inkscape:grid-points="true" /> | |||||
<metadata | |||||
id="metadata7"> | |||||
<rdf:RDF> | |||||
<cc:Work | |||||
rdf:about=""> | |||||
<dc:format>image/svg+xml</dc:format> | |||||
<dc:type | |||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||||
</cc:Work> | |||||
</rdf:RDF> | |||||
</metadata> | |||||
<g | |||||
inkscape:label="Layer 1" | |||||
inkscape:groupmode="layer" | |||||
id="layer1"> | |||||
<rect | |||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
id="rect2160" | |||||
width="118" | |||||
height="118" | |||||
x="91" | |||||
y="13.362183" | |||||
inkscape:export-xdpi="60" | |||||
inkscape:export-ydpi="60" | |||||
inkscape:export-filename="fig2-3-1c.png" /> | |||||
<path | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 92,72.36218 L 208,72.36218 M 150,14.36218 L 150,130.36218" | |||||
id="rect4103" | |||||
sodipodi:nodetypes="cccc" /> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="119.70291" | |||||
y="52.362183" | |||||
id="text4106" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan4108" | |||||
x="119.70291" | |||||
y="52.362183">0</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2167" | |||||
y="52.362183" | |||||
x="179.70291" | |||||
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="52.362183" | |||||
x="179.70291" | |||||
id="tspan2169" | |||||
sodipodi:role="line">3</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="179.70291" | |||||
y="112.36218" | |||||
id="text2171" | |||||
sodipodi:linespacing="125%"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan2173" | |||||
x="179.70291" | |||||
y="112.36218">1</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2175" | |||||
y="112.36218" | |||||
x="119.70291" | |||||
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="112.36218" | |||||
x="119.70291" | |||||
id="tspan2177" | |||||
sodipodi:role="line">2</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2168" | |||||
y="82.362183" | |||||
x="43.702911" | |||||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="82.362183" | |||||
x="43.702911" | |||||
id="tspan2170" | |||||
sodipodi:role="line" | |||||
style="font-size:32px;font-style:italic">M =</tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="287.70291" | |||||
y="82.362183" | |||||
id="text2182" | |||||
sodipodi:linespacing="125%"><tspan | |||||
style="font-size:32px;font-style:italic" | |||||
sodipodi:role="line" | |||||
id="tspan2184" | |||||
x="287.70291" | |||||
y="82.362183">d<tspan | |||||
style="font-size:22px" | |||||
id="tspan2186">i,j</tspan> =</tspan></text> | |||||
<text | |||||
sodipodi:linespacing="125%" | |||||
id="text2204" | |||||
y="62.362183" | |||||
x="393.70291" | |||||
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
xml:space="preserve"><tspan | |||||
y="62.362183" | |||||
x="393.70291" | |||||
id="tspan2206" | |||||
sodipodi:role="line" | |||||
style="font-size:32px;font-style:italic">1+M<tspan | |||||
id="tspan2208" | |||||
style="font-size:22">i,j</tspan></tspan></text> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||||
x="393.70291" | |||||
y="102.36218" | |||||
id="text2210" | |||||
sodipodi:linespacing="125%"><tspan | |||||
style="font-size:32px;font-style:italic" | |||||
sodipodi:role="line" | |||||
id="tspan2212" | |||||
x="393.70291" | |||||
y="102.36218">1+m×n</tspan></text> | |||||
<path | |||||
sodipodi:nodetypes="cc" | |||||
id="path2216" | |||||
d="M 340,72.36218 L 452,72.36218" | |||||
style="font-size:32px;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
</g> | |||||
</svg> |
@@ -0,0 +1,200 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
<svg | |||||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||||
xmlns:cc="http://web.resource.org/cc/" | |||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||||
xmlns:svg="http://www.w3.org/2000/svg" | |||||
xmlns="http://www.w3.org/2000/svg" | |||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
width="744.09448819" | |||||
height="1052.3622047" | |||||
id="svg2" | |||||
sodipodi:version="0.32" | |||||
inkscape:version="0.45.1" | |||||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||||
sodipodi:docname="fig2-3-5.svg" | |||||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||||
inkscape:export-filename="fig2-3-5.png" | |||||
inkscape:export-xdpi="60" | |||||
inkscape:export-ydpi="60"> | |||||
<defs | |||||
id="defs4" /> | |||||
<sodipodi:namedview | |||||
id="base" | |||||
pagecolor="#ffffff" | |||||
bordercolor="#666666" | |||||
borderopacity="1.0" | |||||
gridtolerance="10000" | |||||
guidetolerance="10" | |||||
objecttolerance="10" | |||||
inkscape:pageopacity="0.0" | |||||
inkscape:pageshadow="2" | |||||
inkscape:zoom="0.7" | |||||
inkscape:cx="325.08159" | |||||
inkscape:cy="991.45142" | |||||
inkscape:document-units="px" | |||||
inkscape:current-layer="layer1" | |||||
showgrid="true" | |||||
inkscape:window-width="1075" | |||||
inkscape:window-height="847" | |||||
inkscape:window-x="0" | |||||
inkscape:window-y="0" | |||||
inkscape:grid-points="true" /> | |||||
<metadata | |||||
id="metadata7"> | |||||
<rdf:RDF> | |||||
<cc:Work | |||||
rdf:about=""> | |||||
<dc:format>image/svg+xml</dc:format> | |||||
<dc:type | |||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||||
</cc:Work> | |||||
</rdf:RDF> | |||||
</metadata> | |||||
<g | |||||
inkscape:label="Layer 1" | |||||
inkscape:groupmode="layer" | |||||
id="layer1"> | |||||
<rect | |||||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
id="rect2160" | |||||
width="118" | |||||
height="118" | |||||
x="6" | |||||
y="8.3621826" /> | |||||
<rect | |||||
y="148.36218" | |||||
x="6" | |||||
height="118" | |||||
width="118" | |||||
id="rect2167" | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
sodipodi:nodetypes="cccc" | |||||
id="path2169" | |||||
d="M 7,207.36218 L 123,207.36218 M 65,149.36218 L 65,265.36218" | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<rect | |||||
y="8.3621826" | |||||
x="166" | |||||
height="118" | |||||
width="118" | |||||
id="rect2188" | |||||
style="fill:#3f3f3f;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<rect | |||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
id="rect2208" | |||||
width="118" | |||||
height="118" | |||||
x="166" | |||||
y="148.36218" /> | |||||
<path | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 167,207.36218 L 283,207.36218 M 225,149.36218 L 225,265.36218" | |||||
id="path2210" | |||||
sodipodi:nodetypes="cccc" /> | |||||
<rect | |||||
style="fill:#7f7f7f;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
id="rect2228" | |||||
width="118" | |||||
height="118" | |||||
x="326" | |||||
y="8.3621826" /> | |||||
<rect | |||||
y="148.36218" | |||||
x="326" | |||||
height="118" | |||||
width="118" | |||||
id="rect2248" | |||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
sodipodi:nodetypes="cccc" | |||||
id="path2250" | |||||
d="M 327,207.36218 L 443,207.36218 M 385,149.36218 L 385,265.36218" | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<rect | |||||
y="8.3621826" | |||||
x="486" | |||||
height="118" | |||||
width="118" | |||||
id="rect2268" | |||||
style="fill:#bfbfbf;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<rect | |||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
id="rect2288" | |||||
width="118" | |||||
height="118" | |||||
x="486" | |||||
y="148.36218" /> | |||||
<path | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 487,207.36218 L 603,207.36218 M 545,149.36218 L 545,265.36218" | |||||
id="path2290" | |||||
sodipodi:nodetypes="cccc" /> | |||||
<rect | |||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
id="rect2308" | |||||
width="118" | |||||
height="118" | |||||
x="646" | |||||
y="8.3621826" /> | |||||
<rect | |||||
y="148.36218" | |||||
x="646" | |||||
height="118" | |||||
width="118" | |||||
id="rect2328" | |||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
sodipodi:nodetypes="cccc" | |||||
id="path2330" | |||||
d="M 647,207.36218 L 763,207.36218 M 705,149.36218 L 705,265.36218" | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<rect | |||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
id="rect3317" | |||||
width="118" | |||||
height="118" | |||||
x="6" | |||||
y="148.36218" /> | |||||
<path | |||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 225,207.36218 L 225,148.36218 L 284,148.36218 L 284,266.36218 L 166,266.36218 L 166,207.36218 L 225,207.36218 z " | |||||
id="rect3319" | |||||
sodipodi:nodetypes="ccccccc" /> | |||||
<path | |||||
sodipodi:nodetypes="ccccccccc" | |||||
id="path3324" | |||||
d="M 385,207.36218 L 385,148.36218 L 444,148.36218 L 444,207.36218 L 385,207.36218 L 385,266.36218 L 326,266.36218 L 326,207.36218 L 385,207.36218 z " | |||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<rect | |||||
y="148.36218" | |||||
x="546" | |||||
height="59" | |||||
width="59" | |||||
id="rect3326" | |||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 327,67.36218 L 443,67.36218 M 385,9.36218 L 385,125.36218" | |||||
id="path2190" | |||||
sodipodi:nodetypes="cccc" /> | |||||
<path | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||||
d="M 647,67.36218 L 763,67.36218 M 705,9.36218 L 705,125.36218" | |||||
id="path2186" | |||||
sodipodi:nodetypes="cccc" /> | |||||
<path | |||||
sodipodi:nodetypes="cccc" | |||||
id="path2188" | |||||
d="M 487,67.36218 L 603,67.36218 M 545,9.36218 L 545,125.36218" | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
<path | |||||
sodipodi:nodetypes="cccc" | |||||
id="path2192" | |||||
d="M 167,67.36218 L 283,67.36218 M 225,9.36218 L 225,125.36218" | |||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||||
</g> | |||||
</svg> |