home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 July & August / PCWorld_2004-07-08_cd.bin / novinky / interval / clanek04.htm < prev    next >
Encoding:
Extensible Markup Language  |  2004-06-08  |  19.8 KB  |  264 lines

  1. <?xml version='1.0' encoding='windows-1250'?>
  2. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
  3. <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='cs' lang='cs'>
  4. <head>
  5. <meta http-equiv='Content-Type' content='text/html; charset=windows-1250' />
  6. <meta http-equiv='Content-language' content='cs' />
  7. <meta http-equiv='Cache-control' content='no-cache' />
  8. <meta http-equiv='Pragma' content='no-cache' />
  9. <meta http-equiv='Expires' content='0' />
  10. <meta name='robots' content='index, follow' />
  11. <meta name='googlebot' content='index, follow, noarchive' />
  12. <meta name='description' content='Interval.cz - Internetov² magazφn o webdesignu, v²voji webov²ch aplikacφ a e-komerci. VÜe podstatnΘ o technologiφch XHTML, HTML, CSS, DHTML, JavaScript, XML, .NET, ASP, PHP, Java, J2ME, SQL, WAP...' />
  13. <meta name='keywords' content='Interval' />
  14. <meta http-equiv='imagetoolbar' content='no' />
  15. <meta http-equiv='MSThemeCompatible' content='no' />
  16. <meta name='MSSmartTagsPreventParsing' content='true' />
  17. <meta name='ICBM' content='49.1915, 16.626' />
  18. <meta name='DC.Title' content='Interval.cz' />
  19. <meta name='DC.Identifier' content='http://interval.cz' />
  20. <meta name='DC.Language' content='cs' />
  21. <link rel='alternate' type='text/xml' title='RSS' href='http://interval.cz/__rss/rss.asp' />
  22. <link rel='shortcut icon' href='favicon.ico' />
  23. <link rel='home' href='http://interval.cz' />
  24. <link rel='search' href='http://interval.cz/search_ex.asp' />
  25. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/html4.css' />
  26. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/basic_all.css' />
  27. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/homepage_all.css' />
  28. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/articles_all.css' />
  29. <link rel='stylesheet' type='text/css' media='print' href='__services/styles/articles_print.css' />
  30. <title>Interval.cz - denn∞ o tvorb∞ webu a e-komerci</title>
  31. </head>
  32. <body class='interval interval-articles'>
  33. <div id='page-header'><div id='interval-logo'><h1 title='Interval.cz - denn∞ o tvorb∞ webu a e-komerci (logo & index link)'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz'>Interval.cz<span></span></a></h1></div><div id='advertising-page-header'></div><div class='page-maker'> </div></div>
  34. <div id='page-topmenu'><h2 class='textversion'>Navigace</h2><div id='page-mainmenu'><h3 class='textversion'>Hlavnφ menu</h3><ul><li class='first selected'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz'>Titulnφ strana</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=14'>Webdesign</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=15'>V²voj aplikacφ</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=18'>E-komerce</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=17'>Nßstroje</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=16'>Magazφn</a></li><li class='right selected'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.inshop.cz'>Knihkupectvφ</a></li><li class='right'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interforum.interval.cz'>Interforum</a></li></ul></div><div id='page-mainmenu-maker'> </div></div>
  35. <div id='page-body'><div id='page-left'><div id='article'>
  36.  
  37.  
  38.  
  39. <h2>Java a 3D grafika - Geometry (PointArray, LineArray a TriangleArray)</h2>
  40. <p id='prepend'>V tomto Φlßnku se zaΦneme zab²vat vytvß°enφm objekt∙ prost°ednictvφm instancφ t°φdy Shape3D. Ukß₧eme si, jak pomocφ ·seΦek vytvo°it drßtov² model krychle, a pak si povφme, jak se dajφ pomocφ troj·helnφk∙ vytvß°et t∞lesa se st∞nami.</p>
  41.  
  42.  
  43.     <p>Ne₧ se pustφte do Φtenφ tohoto Φlßnku, doporuΦuji vßm o₧ivit si pov∞domφ o tom, jakΘ objekty se objevujφ v grafu scΘny, jakΘ podmφnky musφ graf scΘny spl≥ovat a k Φemu jsou dobrΘ objekty Appearance, prost°ednictvφm Φlßnku <a href='http://interval.cz/clanek.asp?article=2834' title='Ku₧elka, Ond°ej: Java a 3D grafika - graf scΘny'>Java a 3D grafika - graf scΘny.</a></p>
  44. <p>Pro vytvß°enφ trojrozm∞rn²ch objekt∙ se pou₧φvajφ objekty Shape3D, kterΘ mohou odkazovat na instance podt°φd abstraktnφ t°φdy Geometry a na objekty Appearance. (Jeden objekt Shape3D m∙₧e odkazovat i na n∞kolik objekt∙ Geometry, ale ty musφ b²t stejnΘho typu.) Tyto objekty se jim p°i°azujφ bu∩ p°φmo v konstruktoru <samp>Shape3D(Geometry geometry, Appearance appearance)</samp>, nebo pomocφ metod <samp>setGeometry(Geometry geometry)</samp> a <samp>setAppearance(Appearance appearance)</samp>.</p>
  45. <p>Objekty Geometry obsahujφ vlastnφ data objekt∙, tedy sou°adnice vrchol∙, normßlovΘ vektory, barvy vrchol∙ a sou°adnice slou₧φcφ k otexturovßnφ. V objektech Appearance pak jsou ulo₧eny informace o materißlu, Üφ°ce Φar, tlouÜ¥ce bod∙, o tom, zda se mß nebo nemß pou₧φt antialiasing a tak dßle. Podrobn∞ji jsme se ale t°φd∞ Appearance v∞novali v Φlßnku <a href='http://interval.cz/clanek.asp?article=3126' title='Ku₧elka, Ond°ej: Java a 3D grafika - primitiva'>o grafick²ch primitivech</a>, tak₧e na tomto mφst∞ snad postaΦφ jen tato krßtkß zmφnka.</p>
  46.  
  47. <h3>T°φda GeometryArray a jejφ potomci</h3>
  48. <p>Vzhledem k tomu, ₧e t°φd odvozen²ch od t°φdy Geometry je pom∞rn∞ dost, rozlo₧φme si povφdßnφ o nich do n∞kolika Φlßnk∙. V tomto Φlßnku zaΦneme n∞kolika potomky t°φdy GeometryArray, konkrΘtn∞ t°φdami PointArray, LineArray a TriangleArray.</p>
  49. <p>JednoduÜÜφ verze konstruktor∙ vÜech Φty° zmφn∞n²ch t°φd p°ebφrajφ pouze dva parametry - poΦet vrchol∙ a jejich "formßt", tedy bitovΘ p°φznaky °φkajφcφ, co p°esn∞ bude v danΘm objektu Geometry ulo₧eno. P°φznaky definovanΘ ve t°φd∞ GeometryArray jsou <samp>COORDINATES</samp> pro sou°adnice, <samp>NORMALS</samp> pro normßlovΘ vektory, <samp>COLOR_3</samp> pro barvu bez alfa-transparence, <samp>COLOR_4</samp> pro barvu s alfa-transparencφ, <samp>TEXTURE_COORDINATES_2</samp>, <samp>TEXTURE_COORDINATES_3</samp> a <samp>TEXTURE_COORDINATES_4</samp> pro sou°adnice textur. Tak nap°φklad budeme-li chtφt vytvo°it instanci t°φdy PointArray obsahujφcφ Φty°i barevnΘ body, bude volßnφ konstruktoru vypadat takto: <samp>PointArray(4, GeometryArray.COORDINATES | GeometryArray.COLOR_3);</samp>.</p>
  50. <p>Mßme-li u₧ objekt GeometryArray vytvo°en², musφme do n∞ho vlo₧it pot°ebnß data. Nßsledujφ metody slou₧φcφ pro nastavenφ sou°adnic vrchol∙:</p>
  51.  
  52. <div class='list'>
  53. <ul>
  54. <li>public void setCoordinates(int index, float[] coordinates)</li>
  55. <li>public void setCoordinates(int index, double[] coordinates)</li>
  56. <li>public void setCoordinates(int index, Point3f[] coordinates)</li>
  57. <li>public void setCoordinates(int index, Point3d[] coordinates)</li>
  58. </ul>
  59. </div>
  60.  
  61. <p>V poli "coordinates" jsou ulo₧eny sou°adnice vrchol∙. Parametr "index" oznaΦuje pozici v poli "coordinates", kde se sou°adnice nachßzejφ. Metody pro nastavenφ barev, normßlov²ch vektor∙ a sou°adnic textur jsou velice podobnΘ a postupn∞ se k nim dostaneme alespo≥ v p°φkladech.</p>
  62.  
  63. <h4>T°φda LineArray</h4>
  64. <p>Nynφ u₧ toho vφme dost na to, abychom mohli s vyu₧itφm t°φdy LineArray, kterß je urΦena k vytvß°enφ t∞les z ·seΦek, vytvo°it jednoduchou t°φdu odvozenou od t°φdy Shape3D slou₧φcφ k vytvß°enφ drßtov²ch krychlφ. Jejφ k≤d nßsleduje:</p>
  65.  
  66. <div class='sample'>
  67. package interval.j3d;
  68. <br />
  69. <br />import javax.media.j3d.*;
  70. <br />
  71. <br />public class DratovaKrychle extends Shape3D {
  72. <br />
  73. <br /> float souradnice[] =
  74. <br /><span class='comment'>//sou°adnice bod∙, v₧dy dva body pro ·seΦku</span>
  75. <br />   {-1,-1,1, -1,1,1, -1,1,1, 1,1,1,
  76. <br />   1,1,1, 1,-1,1, 1,-1,1, -1,-1,1,
  77. <br />   -1,-1,-1, -1,1,-1, -1,1,-1, 1,1,-1,
  78. <br />   1,1,-1, 1,-1,-1, 1,-1,-1, -1,-1,-1,
  79. <br />   -1,-1,1, -1,-1,-1, -1,1,1, -1,1,-1,
  80. <br />   1,1,1, 1,1,-1, 1,-1,1, 1,-1,-1};
  81. <br />
  82. <br /> public DratovaKrychle(float hrana) {
  83. <br /><span class='comment'>//nastavφme velikost hran</span>
  84. <br />  for (int i = 0; i < 72; i++)
  85. <br />   souradnice[i] *= hrana/2f;
  86. <br />  setGeometry(vytvorGeometry());
  87. <br />  setAppearance(vytvorAppearance());
  88. <br /> }
  89. <br /> Geometry vytvorGeometry(){
  90. <br /><span class='comment'>//vytvo°φme instanci t°φdy LineArray</span>
  91. <br />  LineArray lineArray = new LineArray(24, GeometryArray.COORDINATES);
  92. <br /><span class='comment'>//nastavφme sou°adnice</span>
  93. <br />  lineArray.setCoordinates(0, souradnice);
  94. <br />  return lineArray;
  95. <br /> }
  96. <br /> Appearance vytvorAppearance(){
  97. <br />  Appearance app =  new Appearance();
  98. <br /><span class='comment'>//nastavφme tlouÜ¥ku Φßry na 3 pixely, povolφme antialiasing</span>
  99. <br />  LineAttributes la = new LineAttributes(3, LineAttributes.PATTERN_SOLID, true);
  100. <br />  app.setLineAttributes(la);
  101. <br />  return app;
  102. <br /> }
  103. <br />}
  104. </div>
  105.  
  106. <p>Jak m∙₧ete sami vid∞t, je k≤d tΘto t°φdy velice jednoduch². Pouze v konstruktoru vytvß°φ objekt Geometry, do kterΘho vlo₧φ sou°adnice zadanΘ v poli "souradnice", kterΘ jeÜt∞ p°edtφm vynßsobφ parametrem "hrana/2", abychom mohli vytvß°et krychle r∙zn²ch velikostφ. Toto je v²sledek:</p>
  107.  
  108. <div class='image'><img src='podklady/kuzelka/865/dratova_krychle1.png' alt='Jednoduchß drßtovß krychle' title='Jednoduchß drßtovß krychle' /></div>
  109.  
  110. <p>Pou₧itφ tΘto t°φdy a takΘ dalÜφch t°φd v tomto Φlßnku, krom∞ t°φdy PointArray, je mnohdy dost ne·spornΘ z hlediska nßrok∙ na pam∞¥ û nap°φklad sou°adnice ka₧dΘho z vrchol∙ krychle v p°φkladu uklßdßme t°ikrßt. ╪eÜenφm mohou b²t podt°φdy, bu∩ t°φdy GeometryStripArray nebo t°φdy IndexedGeometryArray. O tom ale a₧ jindy.</p>
  111.  
  112. <h4>T°φda PointArray</h4>
  113. <p>T°φda PointArray nßm umo₧≥uje zobrazovat jednotlivΘ vrcholy. Ve spojenφ s nφ se hodφ vyu₧φt mo₧nosti nastavenφ tlouÜ¥ky bod∙ prost°ednictvφm t°φdy PointAttributes, jejφ₧ instance se p°ipojujφ k p°φsluÜn²m objekt∙m Appearance. Konstruktor <samp>PointAttributes(float pointSize, boolean antialiasing)</samp> p°ebφrß dva parametry. Parametr "pointSize" urΦuje tlouÜ¥ku bod∙ a parametr "antialiasing" urΦuje, jestli se mß pou₧φt antialiasing.</p>
  114. <p>T°φdu PointArray vyu₧ijeme k vylepÜenφ p°edchozφho p°φkladu tφm, ₧e do ka₧dΘho vrcholu krychle nakreslφme bod zadanΘ tlouÜ¥ky. NaÜe novß t°φda vÜak nebude rozÜi°ovat t°φdu Shape3D, ale bude odvozena od t°φdy Group (kv∙li nemo₧nosti vklßdat do objekt∙ Shape3D objekty Geometry r∙znΘho typu, v tomto p°φpad∞ tedy instance t°φd LineArray a PointArray).</p>
  115.  
  116. <div class='sample'>
  117. package interval.j3d;
  118. <br />
  119. <br />import javax.media.j3d.*;
  120. <br />
  121. <br />public class DratovaKrychle2 extends Group {
  122. <br />
  123. <br /> float souradnice[] =
  124. <br />   {1,1,1,  -1,1,1,  1,-1,1,   1,1,-1,
  125. <br />   -1,-1,1, -1,1,-1, 1,-1,-1, -1,-1,-1};
  126. <br />
  127. <br /> public DratovaKrychle2(float hrana) {
  128. <br />  for (int i = 0; i < 24; i++)
  129. <br />   souradnice[i] *= hrana/2f;
  130. <br />  Shape3D shape2 = new Shape3D();
  131. <br /><span class='comment'>//objektu shape2 nastavφme objekt Geometry</span>
  132. <br />  shape2.setGeometry(vytvorGeometryBodu());
  133. <br /><span class='comment'>//objektu shape2 nastavφme objekt Appearance</span>
  134. <br />  shape2.setAppearance(vytvorAppearanceBodu());
  135. <br /><span class='comment'>//p°idßme objekt DratovaKrychle</span>
  136. <br />  addChild(new DratovaKrychle(hrana));
  137. <br />  addChild(shape2);
  138. <br /> }
  139. <br /> Geometry vytvorGeometryBodu(){
  140. <br />  PointArray pointArray = new PointArray(8, GeometryArray.COORDINATES);
  141. <br />  pointArray.setCoordinates(0, souradnice);
  142. <br />  return pointArray;
  143. <br />  }
  144. <br /> Appearance vytvorAppearanceBodu(){
  145. <br />  Appearance app =  new Appearance();
  146. <br />  PointAttributes pa = new PointAttributes(10, true);
  147. <br />  app.setPointAttributes(pa);
  148. <br />  return app;
  149. <br /> }
  150. <br />}
  151. </div>
  152.  
  153. <p>A takto vypadß v²sledek:</p>
  154.  
  155. <div class='image'><img src='podklady/kuzelka/865/dratova_krychle2.png' alt='Drßtovß krychle se zv²razn∞n²mi vrcholy' title='Drßtovß krychle se zv²razn∞n²mi vrcholy' /></div>
  156.  
  157. <p>Pro lepÜφ p°edstavu si jeÜt∞ ukß₧eme, jak by mohla vypadat instance tΘto t°φdy zakreslenß v grafu scΘny, jak to m∙₧ete vid∞t na nßsledujφcφm obrßzku:</p>
  158.  
  159. <div class='image'><img src='podklady/kuzelka/865/geom.png' alt='Drßtovß krychle - graf scΘny' title='Drßtovß krychle - graf scΘny' /></div>
  160.  
  161. <h4>T°φda TriangleArray</h4>
  162. <p>T°φda TriangleArray slou₧φ, jak u₧ jejφ nßzev napovφdß, k vytvß°enφ t∞les z troj·helnφk∙. Jejφ vyu₧itφ si ukß₧eme na vytvo°enφ Φty°st∞nu. Abychom si takΘ ukßzali, jak pracovat s barvami p°i°azen²mi jednotliv²m vrchol∙m, o₧ivφme st∞ny naÜeho Φty°st∞nu nßhodn∞ vybran²mi barvami.</p>
  163.  
  164. <div class='sample'>
  165. package interval.j3d;
  166. <br />
  167. <br />import javax.media.j3d.*;
  168. <br />import javax.vecmath.*;
  169. <br />import java.util.Random;
  170. <br />
  171. <br />public class Ctyrsten extends Shape3D {
  172. <br /><span class='comment'>//vypoΦφtßme si dv∞ odmocniny, kterΘ budeme pot°ebovat</span>
  173. <br /> float s6 = (float)Math.sqrt(6);
  174. <br /> float s3 = (float)Math.sqrt(3);
  175. <br /><span class='comment'>//ka₧dß °ßdka odpovφdß jednomu troj·helnφku</span>
  176. <br /> float souradnice[] = {
  177. <br />  -0.5f,0,-s3/6f, 0,0,s3/3f, 0.5f,0,-s3/6f,
  178. <br />  -0.5f,0,-s3/6f, 0,s6/3f,0, 0,0,s3/3f,
  179. <br />  0,0,s3/3f, 0,s6/3f,0, 0.5f,0,-s3/6f,
  180. <br />  0.5f,0,-s3/6f, 0,s6/3f,0, -0.5f,0,-s3/6f};
  181. <br /> public Ctyrsten(float hrana) {
  182. <br />  for (int i = 0; i < 36; i++)
  183. <br />   souradnice[i] *= hrana;
  184. <br />  setGeometry(vytvorGeometry());
  185. <br /> }
  186. <br /> Geometry vytvorGeometry(){
  187. <br />  TriangleArray ta = new TriangleArray(12, GeometryArray.COORDINATES | GeometryArray.COLOR_3);
  188. <br />  ta.setCoordinates(0,souradnice);
  189. <br /><span class='comment'>//obarvφme st∞ny nßhodn∞ vybran²mi barvami</span>
  190. <br />  Random rand = new Random();
  191. <br />  for (int i = 0; i < 4; i++){
  192. <br />   Color3f color =  new Color3f(rand.nextFloat(), rand.nextFloat(), rand.nextFloat());
  193. <br />   for (int j = 0; j < 3; j++)
  194. <br />    ta.setColor(3*i+j, color);
  195. <br />   }
  196. <br />  return ta;
  197. <br /> }
  198. <br />}
  199. </div>
  200.  
  201. <p>Obarvenφ tohoto t∞lesa provßdφme v metod∞ <samp>vytvorGeometry()</samp>, kde volßnφm metody <samp>setColor(int i, Color3f color)</samp> nastavujeme ka₧d²m t°em bod∙m urΦujφcφm st∞nu jednu nßhodn∞ vybranou barvu. Barvy jsme ale klidn∞ mohli nastavit odliÜnΘ pro ka₧d²  vrchol - pak by se v jednotliv²ch st∞nßch postupn∞ m∞nily.</p>
  202.  
  203. <div class='image'><img src='podklady/kuzelka/865/ctyrsten.png' alt='╚ty°st∞n' title='╚ty°st∞n' /></div>
  204.  
  205. <p>Objekty, kterΘ jsme v tomto Φlßnku vytvo°ili, majφ jeden velk² nedostatek - sv∞tla na n∞ nemajφ ₧ßdn² ·Φinek. Jak se s tφmto nedostatkem vypo°ßdat, o tom si povφme p°φÜt∞.</p>
  206.  
  207.  
  208.  
  209. <div id='article-author'>
  210. <a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/autor.asp?author=194'>Ku₧elka, Ond°ej</a> (7. 5. 2004)
  211.  
  212. </div>
  213.  
  214.  
  215.  
  216. </div></div>
  217. <div id='page-right'><h2 class='textversion'>Prav² sloupek</h2>
  218. <div id='search'><h3 class='textversion'>Vyhledßvßnφ</h3><form method='get' action='http://interval.cz/search.asp'><div><input type='text' name='hledej' class='text' /><input type='submit' class='submit' value='Najdi!' /></div></form><div><a href='http://interval.cz/search_ex.asp'>RozÜφ°enΘ vyhledßvßnφ</a></div></div>
  219.  
  220.  
  221.  
  222. <div class='page-right-box book'>
  223.     <h3>Kni₧nφ novinka</h3>
  224.     <div class='page-right-box-in'>
  225.         <div class='book-top'>
  226.             <h4><a href='http://interval.cz/__redirect/redirect.asp?what=interval_booknews&url=http://interval.inshop.cz/inshop/scripts/detail.asp?ItemID=266'>Eric Meyer o CSS - Ovlßdn∞te kaskßdovΘ styly!</a></h4>
  227.         </div>
  228.     </div>
  229.     <div class='image'>
  230.         <img src='podklady/knihy/image.jpg' alt='obßlka' title='obßlka' /></a>
  231.     </div>
  232.     <div class='book-bottom'>Cena: <span class='book-price-old'>390 KΦ</span> <span class='book-price-new'>351 KΦ</span></div>
  233. </div>
  234.  
  235.  
  236.  
  237. <div class='page-right-box reading'>
  238.     <h3>NejΦten∞jÜφ</h3>
  239.     <div class='page-right-box-in'>
  240.         <ul>
  241. <li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3380'>VyΦiÜt∞nφ tabulky z MS Wordu v MSIE JavaScriptem</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3383'>Kompletnφ pr∙vodce XSLT - °φzenφ toku transformace</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3385'>èt∞pßnka Sunkovß: Jeden za vÜechny, vÜichni za jednoho</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3379'>SMARTY - cache, WAP a bezpeΦnost</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3381'>╚eskß on-line reklama - internet a chu¥ na bagety</a></li>
  242.         </ul>
  243.     </div>
  244. </div>
  245.  
  246.  
  247.  
  248. <div class='page-right-box cauldron'>
  249.     <h3>Diskuznφ kotel</h3>
  250.     <div class='page-right-box-in'>
  251.         <ul>
  252. <li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3357' title='(57 komentß°∙)'>Se°azenφ tabulky JavaScriptem snadno a rychle</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3363' title='(29 komentß°∙)'>JavaScript, programujeme internetovΘ aplikace</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3364' title='(29 komentß°∙)'>Kam pat°φ menu</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3368' title='(20 komentß°∙)'>Eric Meyer o CSS - Ovlßdn∞te kaskßdovΘ styly!</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3380' title='(16 komentß°∙)'>VyΦiÜt∞nφ tabulky z MS Wordu v MSIE JavaScriptem</a></li>
  253.         </ul>
  254.     </div>
  255. </div>
  256.  
  257.  
  258.  
  259. <div class='page-right-box emailserv'><h3>Email servis</h3><div class='page-right-box-in'><form action='prihlaseni.asp' method='post'><div class='shell'><input class='text' type='text' name='adresa' /></div><div class='shell'><input class='radio' type='radio' value='1' name='co' checked='checked' />T²dennφ p°ehled Φlßnk∙</div><div class='shell'><input class='radio' type='radio' value='2' name='co' />HELP konference</div><div class='shell'><input class='submit' type='submit' value='P°ihlßsit' /></div></form></div></div>
  260. </div>
  261. <div class='page-maker'> </div><div class='page-maker-white'> </div></div>
  262. <div id='page-foot'><div id='page-foot-menu'><a href='http://interval.cz/reklama.asp'>Inzerce na Interval.cz</a> | <a href='http://interval.cz/redakce.asp'>Redakce Interval.cz</a> | <a href='http://interval.cz/autori.asp'>Hledßme novΘ autory</a></div><div id='issn'>ISSN 1212-8651</div><div id='page-foot-zoner'>© Zoner software, s.r.o., vÜechna prßva vyhrazena, tento server dodr₧uje <a href='http://interval.cz/privacy.asp'>prßvnφ p°edpisy</a>o ochran∞ osobnφch ·daj∙.</div></div>
  263. </body>
  264. </html>