<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">

<channel>
	<title>Николин блог &#187; јаваскрипт</title>
	<atom:link href="http://smolenski.rs/blog/tag/javaskript/feed/" rel="self" type="application/rss+xml" />
	<link>http://smolenski.rs/blog</link>
	<description>Још увек се хватам у коштац са Вордпресом.</description>
	<lastBuildDate>Wed, 18 Jan 2012 16:00:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/rs/</creativeCommons:license>		<item>
		<title>Ћирилични бројеви</title>
		<link>http://smolenski.rs/blog/2009/11/cirilicni-brojevi/</link>
		<comments>http://smolenski.rs/blog/2009/11/cirilicni-brojevi/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 14:57:08 +0000</pubDate>
		<dc:creator>Nikola</dc:creator>
				<category><![CDATA[Ћирилица]]></category>
		<category><![CDATA[јаваскрипт]]></category>

		<guid isPermaLink="false">http://smolenski.rs/blog/?p=287</guid>
		<description><![CDATA[Анкетом неколико људи које познајем дошао сам до закључка да 100% Срба нема појма да ћирилични бројеви уопште постоје. А итекако постоје, и бројеви су се у ћириличним текстовима, све до увођења арапских цифара, искључиво њима записивали (римски бројеви нису били у употреби). Зарад опште ползе, одлучио сам да их овде представим, е да би [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 190px"><a href="http://commons.wikimedia.org/wiki/File:Tower_clock_in_Suzdal_face.jpg"><img title="Лице сата са ћириличним бројевима на сахат-кули у Суздаљу" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Tower_clock_in_Suzdal_face.jpg/180px-Tower_clock_in_Suzdal_face.jpg" alt="Лице сата са ћириличним бројевима на сахат-кули у Суздаљу" width="180" height="183" /></a><p class="wp-caption-text">Лице сата са ћириличним бројевима на сахат-кули у Суздаљу</p></div>
<p>Анкетом неколико људи које познајем дошао сам до закључка да 100% Срба нема појма да ћирилични бројеви уопште постоје. А итекако постоје, и бројеви су се у ћириличним текстовима, све до увођења арапских цифара, искључиво њима записивали (римски бројеви нису били у употреби). Зарад опште ползе, одлучио сам да их овде представим, е да би се заблудело српство себи повратило.<br />
<span id="more-287"></span></p>
<p>Ћирилични бројеви се записују тако што су ћириличним словима додељени бројеви, и то према бројевним вредностима одговарајућих слова грчког алфабета. Ово значи да ћирилична слова која немају одговарајућа грчка, као што су Б, Ж или Ш, немају ни свој број, као да постоји и неколико ћириличних слова која се данас више не користе а која су се користила само (или углавном) за записивање бројева.</p>
<p>Ћирилични бројеви од 1 до 9 су:</p>
<table style="text-align: center;" border="1">
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td>А</td>
<td>В</td>
<td>Г</td>
<td>Д</td>
<td>Є</td>
<td>Ѕ</td>
<td>З</td>
<td>И</td>
<td>Ѳ</td>
</tr>
</tbody>
</table>
<p>Примећујемо да су Б, Ђ и Ж прескочени. Код Є сам мало варао па сам га написао помоћу слова Є мада је оно уствари исто слово као данашње Е, а само је некад изгледало као Є (ако вам није јасно, није битно — тешко да може постати јасније). А Ѳ је ћирилично слово фита, које се користило само за број 9 и за писање слова Ф у неким речима грчког порекла.</p>
<p>Правила записивања бројева између 10 и 99 су донекле слична данашњем позиционом систему који користимо за запис бројева арапским цифрама, уз три разлике. Прва разлика је да се за запис десетица не користе исте &#8222;цифре&#8220; као за јединице, већ посебна слова која означавају десетице. Друга је да се целе десетице означавају само својим словима, јер нула још није била измишљена. Трећа, најнеобичнија, разлика је да се бројеви између 11 и 19 записују онако како се изговарају, тј. прво цифра јединица па цифра десетица (данас кад изговарамо &#8222;једанаест&#8220;, &#8222;дванаест&#8220; итд. ово &#8222;наест&#8220; је уствари остатак од &#8222;на десет&#8220;). Ово треће нам је данас необично, но сетимо се да сабирање са потписивањем и сличне радње ионако нису биле могуће без нуле па се тежило лакшем читању бројева а не лакшем рачунању са њима.</p>
<p>Ћирилични бројеви десетица су:</p>
<table style="text-align: center;" border="1">
<tbody>
<tr>
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
<td>60</td>
<td>70</td>
<td>80</td>
<td>90</td>
</tr>
<tr>
<td>І</td>
<td>К</td>
<td>Л</td>
<td>М</td>
<td>Н</td>
<td>Ѯ</td>
<td>О</td>
<td>П</td>
<td>Ҁ</td>
</tr>
</tbody>
</table>
<p>Ѯ је ћирилично слово кси, неким читаоцима овог блога већ познато <img src='http://smolenski.rs/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  , које се користило само за број 60 и за писање &#8216;кс&#8217; у неким речима грчког порекла. Ҁ је ћирилично слово копа, које се користило искључиво за писање броја 90; чак ни у грчком се није користило за писање речи већ такође само за број, и брзо је изашло из употребе те га је заменило ћирилично Ч, донекле сличног облика. Иначе, кси се може сматрати словом које одговара латиничном икс, а копа латиничном ку.</p>
<p>Примери: 10 — І, 11 — АІ, 12 — ВІ, 20 — К, 21 — КА, 22 — КВ, 30 — Л, 31 — ЛА&#8230;</p>
<p>Правила записивања бројева између 100 и 999 су слична данашњем записивању бројева. Такође постоје посебна слова која означавају стотине. Такође слова стотина сама стоје за целе стотине. Такође цифре десетица и јединица замењују места за бројеве 111-119, 211-219 итд. Код бројева попут 101, 102, пишу се само стотине и јединице (нема нуле).</p>
<p>Ћирилични бројеви стотина су:</p>
<table style="text-align: center;" border="1">
<tbody>
<tr>
<td>100</td>
<td>200</td>
<td>300</td>
<td>400</td>
<td>500</td>
<td>600</td>
<td>700</td>
<td>800</td>
<td>900</td>
</tr>
<tr>
<td>Р</td>
<td>С</td>
<td>Т</td>
<td>Ѵ</td>
<td>Ф</td>
<td>Х</td>
<td>Ѱ</td>
<td>Ѡ</td>
<td>Ц</td>
</tr>
</tbody>
</table>
<p>Ѵ је ижица, посебно слово које се користило за писање броја 400 и, погађате, неких речи грчког порекла, а у којима је означавало И или В (донекле одговара латиничном слову ипсилон). Ѱ је ћирилично слово пси, за број 700 и &#8216;пс&#8217; у неким речима грчког порекла. Ѡ је ћирилично омега, број 800 и слово О у неким речима грчког порекла, а понекад се користило и уместо обичног О за украс.</p>
<p>Примери: 100 — Р, 101 — РА, 102 — РВ, 110 — РІ, 111 — РАІ, 120 — РК, 121 — РКА, 130 — РЛ, 200 — С, 201 — 210 — СІ, 211 — САІ, 220 — СК, 221 — СКА&#8230;</p>
<p>Код хиљада је, међутим, већ понестало слова, па се прибегло једној варци: испред слова које означава неку од јединица се стави посебан знак за хиљаду и онда оно означава толико хиљада. Све напоменуто за стотине и десетице важи и за хиљаде.</p>
<p>Примери: 1000 — ҂А, 1001 — ҂АА, 1010 — ҂АР, 1011 — ҂ААР, 1021 — ҂АКА, 1100 — ҂АР, 2000 — ҂В&#8230;</p>
<p>Сад ви мислите да се десетине хиљада пишу као и хиљаде, само се код знака за хиљаду употреби слово за десетицу, међутим не: постоји посебан знак за десетину хиљада који се поново примењује на слова јединица, као и други знаци за још веће бројеве. Зашто тако — није ми јасно. За десетине хиљада слово јединица се заокружи; за стотине хиљада се окружи малим луковима; за милионе се окружи, рецимо, зарезима; за десетине милиона малим х-овима; за стотине милиона угластим заградама одозго и одоздо; и најзад за милијарде из слова избијају зраци, са све крстом изнад. Даље од тога се није ишло, а не знам да ли је правилно овај знак за милијарде писати око слова десетица и стотина.</p>
<p>Примери: 10000 — А⃝, 10001 — А⃝А, 11000 — А⃝҂А, 11001 — А⃝҂АА, 100000 — А҈, 1000000 — А҉, 10000000 — А꙰, 100000000 — А꙱, 1000000000 — А꙲, 1234567891 — А꙲В꙱Г꙰Д҉Є҈Ѕ⃝҂ЗѠҀА&#8230;</p>
<p>Вероватно ће мало који компјутер ово приказати како треба. За оне са јефтинијим фонтовима, ту су <a href="http://www.unicode.org/charts/PDF/Unicode-3.2/U32-0400.pdf">Уникод спецификација за ћирилицу</a> као и <a href="http://unicode.org/charts/PDF/UA640.pdf">Уникод спецификација за проширену ћирилицу-Б</a>.</p>
<p>Најзад, остало је и да се каже како се ћирилични бројеви раздвајају од околног текста, тј. како знати кад је нешто број а кад реч. Ово би се радило тако што би се над бројем написало <a href="http://sr.wikipedia.org/wiki/%D0%A2%D0%B8%D1%82%D0%BB%D0%BE">титло</a>, овако: А҃, а друга могућност је .А. &mdash; окруживање броја тачкама. За бројеве са више цифара титло се писало над целим бројем: <img src="http://upload.wikimedia.org/wikipedia/commons/4/41/Slavic-numerals-7118.jpg"/>, што и није могуће представити у Уникоду, мада се и иначе понекад користило посебно титло за свако слово.</p>
<p>За крај, треба поменути још и глагољичне бројеве. Они се користе на потпуно исти начин, осим што не одговарају грчком алфабету већ су дати по азбучном реду глагољице. Ова особина је згодна за откривање рукописа који су преписивани са глагољице на ћирилицу, пошто се дешавало да писари у журби не пребаце број из глагољичног у ћирилични већ само препишу слова, па тако добију немогуће ћириличне бројеве, који нама добро дођу да видимо да је текст преписан из глагољичног оригинала.</p>
<p>Иза краја, ево и једне јаваскрипт скриптице за претварање бројева из арапских у ћириличне:</p>
<p><script type="text/javascript">
function num2cir(num) {
	var res = '', i;
	var cir = new Array();
	cir[0] = '';
	cir[1] = 'А';
	cir[2] = 'В';
	cir[3] = 'Г';
	cir[4] = 'Д';
	cir[5] = 'Є';
	cir[6] = 'Ѕ';
	cir[7] = 'З';
	cir[8] = 'И';
	cir[9] = 'Ѳ';
	cir[10] = 'І';
	cir[20] = 'К';
	cir[30] = 'Л';
	cir[40] = 'М';
	cir[50] = 'Н';
	cir[60] = 'Ѯ';
	cir[70] = 'О';
	cir[80] = 'П';
	cir[90] = 'Ҁ';
	cir[100] = 'Р';
	cir[200] = 'С';
	cir[300] = 'Т';
	cir[400] = 'Ѵ';
	cir[500] = 'Ф';
	cir[600] = 'Х';
	cir[700] = 'Ѱ';
	cir[800] = 'Ѡ';
	cir[900] = 'Ц';
	cir[1000] = '҂';
	cir[10000] = '⃝';
	cir[100000] = '҈';
	cir[1000000] = '҉';
	cir[10000000] = '꙰';
	cir[100000000] = '꙱';
	cir[1000000000] = '꙲';
	for( i = 1000000000; i > 1000; i /= 10 ) {
		if( Math.floor( num / i ) ) {
			res += '' + cir[ Math.floor( num / i ) ];
			res += '' + cir[ i ];
		}
		num = num % i;
	}
	if( Math.floor( num / 1000 ) ) {
		res += '' + cir[ 1000 ];
		res += '' + cir[ Math.floor( num / 1000 ) ];
	}
	num = num % 1000;
	res += '' + cir[ num - num % 100 ];
	num = num % 100;
	if( num - num % 10 == 10 ) {
		res += '' + cir[ num % 10 ];
		res += '' + cir[ 10 ];
	} else {
		res += '' + cir[ num - num %10 ];
		res += '' + cir[ num % 10 ];
	}
	return res;
}
function log10( a ) {
	return Math.log( a ) / Math.log( 10 );
}
</script></p>
<form onsubmit="return false;">
<input type="text" name="num" value="1234" onkeyup="this.form.cir.value = num2cir(this.form.num.value);"/>
<input type="text" name="cir" value="҂АСЛД" readonly/>
</form>
<p>Кôд:</p>
<pre>
function num2cir(num) {
	var res = '', i;
	var cir = new Array();
	cir[0] = '';
	cir[1] = 'А';
	cir[2] = 'В';
	cir[3] = 'Г';
	cir[4] = 'Д';
	cir[5] = 'Є';
	cir[6] = 'Ѕ';
	cir[7] = 'З';
	cir[8] = 'И';
	cir[9] = 'Ѳ';
	cir[10] = 'І';
	cir[20] = 'К';
	cir[30] = 'Л';
	cir[40] = 'М';
	cir[50] = 'Н';
	cir[60] = 'Ѯ';
	cir[70] = 'О';
	cir[80] = 'П';
	cir[90] = 'Ҁ';
	cir[100] = 'Р';
	cir[200] = 'С';
	cir[300] = 'Т';
	cir[400] = 'Ѵ';
	cir[500] = 'Ф';
	cir[600] = 'Х';
	cir[700] = 'Ѱ';
	cir[800] = 'Ѡ';
	cir[900] = 'Ц';
	cir[1000] = '҂';
	cir[10000] = '⃝';
	cir[100000] = '҈';
	cir[1000000] = '҉';
	cir[10000000] = '꙰';
	cir[100000000] = '꙱';
	cir[1000000000] = '꙲';

	for( i = 1000000000; i > 1000; i /= 10 ) {
		if( Math.floor( num / i ) ) {
			res += '' + cir[ Math.floor( num / i ) ];
			res += '' + cir[ i ];
		}
		num = num % i;
	}
	if( Math.floor( num / 1000 ) ) {
		res += '' + cir[ 1000 ];
		res += '' + cir[ Math.floor( num / 1000 ) ];
	}
	num = num % 1000;
	res += '' + cir[ num - num % 100 ];
	num = num % 100;
	if( num - num % 10 == 10 ) {
		res += '' + cir[ num % 10 ];
		res += '' + cir[ 10 ];
	} else {
		res += '' + cir[ num - num %10 ];
		res += '' + cir[ num % 10 ];
	}

	return res;
}

function log10( a ) {
	return Math.log( a ) / Math.log( 10 );
}
</pre>
<p>Иза свих крајева, ту је и <a href="http://sr.wikipedia.org/wiki/%D0%8B%D0%B8%D1%80%D0%B8%D0%BB%D0%B8%D1%87%D0%BD%D0%B8_%D0%B1%D1%80%D0%BE%D1%98%D0%B5%D0%B2%D0%B8">чланак на Википедији</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://smolenski.rs/blog/2009/11/cirilicni-brojevi/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Л-системи</title>
		<link>http://smolenski.rs/blog/2009/10/l-sistemi/</link>
		<comments>http://smolenski.rs/blog/2009/10/l-sistemi/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 20:00:56 +0000</pubDate>
		<dc:creator>Nikola</dc:creator>
				<category><![CDATA[Програмирање]]></category>
		<category><![CDATA[јаваскрипт]]></category>
		<category><![CDATA[СВГ]]></category>
		<category><![CDATA[фрактали]]></category>

		<guid isPermaLink="false">http://smolenski.rs/blog/?p=77</guid>
		<description><![CDATA[Л-систем илити Линденмајеров систем је формална граматика, најкоришћенија за моделирање раста биљака. Употребом Л-система̂ могу се добити веома реалистични прикази биљака применом веома једноставних правила. Уосталом, слика говори више од речи: ова &#8222;алга&#8220; добијена је једноставним правилом F F +[ + F - F - F ] - [ - F + F + F ]. Шта му је ово F F + &#8230;? Једноставно: F исцртава линију одређене дужине у тренутном смеру (на почетку &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-83" title="Alga" src="http://smolenski.rs/blog/wp-content/uploads/2009/10/Alga.png" alt="Alga" width="140" height="331" /><strong>Л-систем</strong> илити <strong>Линденмајеров систем</strong> је <a href="http://sr.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D0%BD%D0%B0_%D0%B3%D1%80%D0%B0%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0">формална граматика</a>, најкоришћенија за моделирање раста биљака. Употребом Л-система̂ могу се добити веома реалистични прикази биљака применом веома једноставних правила. Уосталом, слика говори више од речи: ова &#8222;алга&#8220; добијена је једноставним правилом F F +[ + F - F - F ] - [ - F + F + F ].</p>
<p>Шта му је ово F F + &#8230;? Једноставно: <strong>F</strong> исцртава линију одређене дужине у тренутном смеру (на почетку &#8211; право на горе); <strong>-</strong> окреће смер у ком ће се линије исцртавати за одређени број степени на десно; <strong>+</strong> исто то али на лево; док <strong>[</strong> и <strong>]</strong> памте тренутни смер и положај исцртавања (кад се исцрта све између заграда, исцртавање се наставља као да тога између није ни било). Кључно је да се ово правило примењује више пута тако што се на сваку линију која би иначе била исцртана примењује цело правило. Можда звучи мало компликовано, али ево појашњења на једном још једноставнијем правилу F [ + F ] F:</p>
<table border="0">
<tbody>
<tr>
<td>У првом кораку,</p>
<ul>
<li><strong>F</strong> исцртава линију право на горе;</li>
<li><strong>[</strong> памти положај и смер;</li>
<li><strong>+</strong> окреће смер за 45° на лево;</li>
<li><strong>F</strong> исцртава линију у том смеру, дакле 45° на лево;</li>
<li><strong>]</strong> се враћа на упамћени положај и смер;</li>
<li><strong>F</strong> исцртава линију право на горе.</li>
</ul>
</td>
<td align="right" valign="middle"><img src="http://smolenski.rs/blog/wp-content/uploads/2009/10/L-sistem-1.png" alt="" /></td>
</tr>
<tr>
<td>У другом кораку се све ово понавља, и то тако што се цело правило понавља за сваку линију која би била исцртана у првом правилу.</td>
<td align="right" valign="middle"><img src="http://smolenski.rs/blog/wp-content/uploads/2009/10/L-sistem-2.png" alt="" /></td>
</tr>
<tr>
<td>У трећем кораку&#8230;</td>
<td align="right" valign="middle"><img src="http://smolenski.rs/blog/wp-content/uploads/2009/10/L-sistem-3.png" alt="" /></td>
</tr>
</tbody>
</table>
<p>Кад сам их се пре неки дан подсетио, направио сам и једну <a href="http://smolenski.rs/dev/lsys.php">имплементацију Л-система у јаваскрипту</a> (пошто користи уметнути СВГ,  <a href="http://wiki.svg.org/Inline_SVG#User_Agent_Support">не ради у Експлореру</a>). Могуће је задати са̂м систем, дужину линије, угао закрета, и &#8222;дубину&#8220;, број поновних исцртавања (овде, <strong>пажња</strong>: све веће од 3 или 4 ће вероватно заглавити бровзер). Имплементација је сразмерно једноставна (сам ко̂д је наравно видљив у, јел, изворном коду стране), рекурзивно пролази кроз ниску правила и исцртава систем; међутим кад сам је завршио сетио сам се да је могло и много једноставније: више пута применити обичан нађи/замени унутар ниске и линеарно прећи коначну ниску исцртавајући&#8230; но, то би било варање <img src='http://smolenski.rs/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Осим ова два, ево  још неких занимљивих Л-система:</p>
<ul>
<li> F+F&#8211;F+F, угао 60 (Кохова крива)</li>
<li>F+F-F-F+F, угао 90 (такође Кохова крива)</li>
<li>F+F-F-FF+F+F-F, угао 90 (Кохово острво)</li>
<li>F[-FF]+[FFF]-FF[+F], угао 15</li>
<li>F[-F]F[+F][F], угао 60</li>
<li>F[-F][+F]F, угао 90 &#8222;табла&#8220;</li>
</ul>
<p>а ако откријете још неки леп, приложите га у коментару.</p>
<p>Могуће је имати и много комплексније Л-системе: пре свега, оне који користе више од једне променљиве; затим, параметризоване, у којима се унутар правила наводе  различити углови и различите дужине линија (као и дебљине, боје&#8230;); па &#8222;ослучајене&#8220; у којима постоји више правила од којих се једно бира по случајном избору; тродимензионалне&#8230; О свему томе у неком од следећих бројева.</p>
]]></content:encoded>
			<wfw:commentRss>http://smolenski.rs/blog/2009/10/l-sistemi/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

