Portál AbcLinuxu, 1. května 2025 08:45
Tusim, ze resenim by mozna mohl byt postscript nebo TeX, ale zaroven myslim, ze by to melo jit i nejak jednoduseji.
Prvni vec je vygenerovani cernobileho(256 stupnu sede), stredove symetrickeho obrazku, kde bych nejak (bud funkci nebo sadou datovych bodu x,y) zadal vzdalenost od stredu(x) a stupen sedi(y). Pro priklad, kdyby zadana funkce byla vzestupne schodovita, byl by pozadovany obrazek sadou soustrednych kruznic s bilou uprostred a cernou na vnejsim okraji. Kdyby byla vstupni sada rada "pulsu" (|_|_|_|_||_) vypadal by obrazek jako terc s cernym bodem uprostred a dvojitou cernou carou na vnejsim okraji....
Druhy, mozna i jednodussi problem je vygenerovat testovaci obrazec pro mikrofotografii, takze bych chtel nejak rozhazet na A4 nejakych 255 ctvercu, z nich kazdy by mel opet jiny stupen sedi. Je nejaky rozumne jednoduchy zpusob jak to udelat?
O postscriptu vim jen ze existuje. Bude-li jine reseni, bude to fajn. Vysledek muze byt vektor, ale klidne i bitmapa, staci jen aby mela slusne rozlisteni pro tisk na A4, pak to fotograficky zmensim a bude to pouzite jako pokusna maska na mikrolitografii v amorfnich polovodicich.
Tiskni
Sdílej:
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="600px" height="600px" version="1.1" viewArea="0 0 200 200" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>Kruhy</title> <circle cx="100" cy="100" r="100" fill="rgb(100,100,100)" /> <circle cx="100" cy="100" r="90" fill="rgb(255,255,255)" /> <circle cx="100" cy="100" r="80" fill="rgb(130,130,130)" /> <circle cx="100" cy="100" r="70" fill="rgb(158,158,158)" /> <circle cx="100" cy="100" r="60" fill="rgb(200,200,200)" /> <circle cx="100" cy="100" r="50" fill="rgb(250,250,250)" /> <circle cx="100" cy="100" r="40" fill="rgb(010,010,010)" /> <circle cx="100" cy="100" r="30" fill="rgb(078,078,078)" /> <circle cx="100" cy="100" r="20" fill="rgb(123,123,123)" /> <circle cx="100" cy="100" r="10" fill="rgb(111,111,111)" /> </svg>Musí být malované z vnějšku dovnitř, protože se maluje celá kružnice, ne jen mezikruží.
cx
, cy
je střed (pro všechny stejný), r
je poloměr (postupně se zmenšující). Rozdíl sousedních poloměrů určuje tloušťku mezikruží. fill
je barva, lze ji zadat i hexadecimálně (např. #CACACA
). viewArea
na začátku je plocha, do které se kreslí, pokud byste chtěl přidat např. dalších 10 kružnic s rozdílem poloměrů 10, zvětšete si jí na "0 0 400 400" a středy posuňte do "200, 200". width
a height
na začátku je přednastavená velikost obrázku, ale každý rozumný program vám umožní zoomovat.
Otevřít to půjde např. v Inkscape, nebo např. javovský Batik.
vievBox
za viewArea
.
A čtverce např. takto (x
a y
rostou postupně po desítkách od 0 do 150):
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="210mm" height="297mm" version="1.1" viewBox="0 0 160 226" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>Čtverce</title> <rect height="10" width="10" x="000" y="000" fill="rgb(100,100,100)" /> <rect height="10" width="10" x="010" y="000" fill="rgb(020,020,020)" /> <rect height="10" width="10" x="020" y="000" fill="rgb(200,200,200)" /> <rect height="10" width="10" x="030" y="000" fill="rgb(158,158,158)" /> <rect height="10" width="10" x="040" y="000" fill="rgb(030,030,030)" /> <rect height="10" width="10" x="050" y="000" fill="rgb(111,111,111)" /> <rect height="10" width="10" x="060" y="000" fill="rgb(255,255,255)" /> <rect height="10" width="10" x="070" y="000" fill="rgb(200,200,200)" /> <rect height="10" width="10" x="080" y="000" fill="rgb(100,100,100)" /> <rect height="10" width="10" x="090" y="000" fill="rgb(020,020,020)" /> <rect height="10" width="10" x="100" y="000" fill="rgb(200,200,200)" /> <rect height="10" width="10" x="110" y="000" fill="rgb(158,158,158)" /> <rect height="10" width="10" x="120" y="000" fill="rgb(030,030,030)" /> <rect height="10" width="10" x="130" y="000" fill="rgb(111,111,111)" /> <rect height="10" width="10" x="140" y="000" fill="rgb(255,255,255)" /> <rect height="10" width="10" x="150" y="000" fill="rgb(200,200,200)" /> <rect height="10" width="10" x="000" y="010" fill="rgb(133,133,133)" /> <rect height="10" width="10" x="010" y="010" fill="rgb(097,097,097)" /> <rect height="10" width="10" x="020" y="010" fill="rgb(014,014,014)" /> </svg>
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.