Friday, January 25, 2019

Java Programming sinhala tutorial - Conversion & Casting - Part 8

Conversion & Casting ( Primitive type )

         අද අපි conversion වගේම casting කියන්නේ මොකක්ද කියලා බලමු. Java වල primitive data types 8 ක් තියෙනවා කියලත් ඒවාට වෙනත් data range තියෙනවා කියලත් ඔයාලා කලින් ලිපි වලින් ( 4 වෙනි ලිපිය ) දැනගන්න ඇති. එක data type එකක variable එකක value එකක් වෙනත් data type එකක variable එකක store කිරීමේදී ඒවායේ data range එක බලපායි. 
        කුඩා data range එකක් පවතින variable එකක value එක වෙනත් විශාල data range එකක් පවතින variable එකක automatically store කිරීමට compiler ඉඩ ලබා දෙයි. මෙම ක්‍රියාවලිය conversion ලෙස හදුන්වනවා.
        විශාල data range එකක් පවතින variable එකක value එක වෙනත් කුඩා data range එකක් පවතින variable එකක store කිරීමට උත්සහ කිරීමේදී error ලැබේ. එම නිසා ඒවා casting කල යුතු වේ.




පහත ගැලීම් සටහනේන්  data type හි කුඩා data range එකේ සිට විශාල data range එක දක්වා පෙන්නුම් කරයි.


    ඉහත ගැලීම් සටහනේ ඊ හිස අතට auto conversion වේ.
    char data type එකේ data range එක 0 සිට 65535 දක්වා වන නිසා char variable එකක value එක byte, short variable වල store කල නොහැක. byte, short variable වල value char variable එකක store කිරීමටද නොහැක. char data type එකේ data range එක int data type එකේ data range එක අතර පවතින නිසා char variable එකක value එක int variable එකක store කල හැක. 

casting කිරීමේදී විශාල data range එකක් පවතින variable එකේ අගින් කුඩා data range එකක් පවතින variable එකේ data range එකට අදාල bit ප්‍රමාණය පමණක් සැලකිල්ලට ගැනීම සිදු වේ. 

Ex : - ( Casting )



- චමෝදි -

Tuesday, January 22, 2019

Java Programming sinhala tutorial - Final Keyword & Final Variable - Part 7

Final Keyword & Final Variable

Final keyword එක user ව සීමා කිරීමට පාවිච්චි කරයි. මෙය class , variable , method සදහා භාවිතා කරන්න පුළුවන්.

  • Final variable - වෙනස් නොවන අගයන් store කිරීමට 
  • Final method - method overriding වීම වැළැක්වීමට 
  • Final class - inheritance වීම වැළැක්වීමට 

Final Variable

කලින් සදහන් කල ආකාරයට final variable භාවිතා කරනුයේ එහි අගය වෙනස් කිරීමට අවශ්‍ය නොවන variable සදහායි. ඒ අනුව final variable initialize කල යුතුයි. ඒ වගේම final variable initialize කරන්න පුළුවන් වෙන්නේ එක් වරක් පමණයි. Final variable initialize කලේ නැත්නම් compiler error එකක් ලැබෙනවා.

Ex :- final int A = 5;

අපිට Final variable initialize කරන්න පුළුවන් ක්‍රම 3 ක් තියෙනවා.

  1. Final variable එක declare කරන විටම initialize කරන්න පුළුවන්.
  2. Final variable එක declare කරන විටම initialize නොකරන ලද variable, blank final variable ලෙස හදුන්වනවා. ඒවා static නොවේ නම්,  instance-initialize block එකක් තුල හෝ constructor එකක් ඇතුලත initialize කරන්න පුළුවන්. Constructors එකකට වඩා පවතී නම්, ඒ හැම constructor එකක් තුලම final variable එක initialize කරන්න ඕනේ.
  3. එය static final variable එකක් නම්,  static block ක් තුල initialize  කරන්න පුළුවන්.



යම් කිසි object එකක් refer කරන final variable එකක් Reference final variable ලෙස හදුන්වනවා.

Ex :- final StringBuffer a;

object එකේ function භාවිතා කිරීමෙන් එහි අගය වෙනස් කිරීමට හැකි වුවත් එය Final variable එකට වෙනත් අගයක් assign කිරීමක් ලෙස නොසලකයි.



Final method, Final class ගැන අපි ඉදිරි පිටු වලදී කතා කරමු.

- චමෝදි -

Sunday, January 20, 2019

Blender Sinhala Tutorial - Texture Mapping


අපි අද බලමු කොහොමද texture එකක් ඇප්ලයි කරගන්නේ කියලා. මොනවද මේ textures කියලා
ඉස්සෙල්ලම කියන්නම්කෝ මං. බලන්නකෝ මේ පහල ෆොටෝ දෙක.




මේකේ uda තියෙන ෆොටෝ එකක් cartoon එකක් වගේ. හැබැයි පහල ෆොටෝ එකේ තාත්වික බවක් තියෙනවා.
මේ තාත්වික බව ලබාගෙන තියෙන්නේ textures මගීන්. texture එක මගින් කරන්නේ පරිගණක
මගින් හදන හැඩතලවලට සියුම් විස්තර එකතු කරලා තාත්වික බවක් ලබා දෙන එක. මේ පහල
තියෙන්නේ textures ටිකක්. සාමාන්‍යයෙන් 2D photo එකක් විදියට තමයි textures තියෙන්නේ.





දැන් අපි බලමු කොහොමද blender වල texture එකක් apply කරගන්නෙ කියල. ඉස්සෙල්ලම ඔයාට texture එක
දාන්න ඕන object එක select කරගන්න ඕනේ. ඊට පස්සේ පහත පියවර අනුගමනය කරන්න ඕන.

Object Properties window -> Materials tab -> New button click කරන්න.

ඊට පස්සේ Color කියන තැන තියෙන පොඩි ඩොට් එක click කරන්න. ඊටපස්සේ එන මෙනු එකෙන්
image texture තෝරන්න.




ඊට පස්සේ ඔයාට උවමනා texture එක තොරන්න.



ඊට පස්සෙ කරන්න තියෙන්නෙ ඔයාගෙ object  එක uv unwrap කරලා texture එක ඔයාට කැමති විදිහට ස්ථාන
ගත කරන එක.

ඔයාගේ object එක select කරලා edit mode එකට යන්න. ඊට පස්සේ unwrap mesh එකේ smart unwrap තොරන්න.



ඇත්තටම කිව්වොත් UV Unwrapping කියන දේ ගොඩක් සංකීර්ණ දෙයක්. අද මම කියලා දුන්නේ ගොඩක්ම
සරල විදියට. අපි තවත් post එකකින් ඒ දේවල් තවදුරටත් කතා කරමු.

--Hasini Senanayaka--




Sunday, January 13, 2019

Blender Sinhala Tutorial - How to make a table

        ආයුබෝවන්. මම අදත් ආවා අලුත් බ්ලොග් පොස්ට් එකක් අරගෙන. ඉතින් ඔයාලට bender ගැන basic දැනුමක් තියෙන නිසා මං හිතුවා පොඩි practical දෙයක් කරන්න. ඉතිං අද කියලා දෙන්න යන්නේ මේසයක් හදන්නඒ විතරක් නෙමෙයි මේ මේසෙට මේස රෙද්දක් දාලා ඒකට texture එකකුත් apply කරන්න කියල දෙනවා ඉස්සරහට.

        එහෙනම් ඉස්සෙල්ලම අපි මේසයක් හදමු.  එකට මම පාවිච්චි කරන්නේ cylinder එකක් විතරයි. මේ ආකාරයෙන් තමයි  blender open  වුණහම පෙන්නන්නේ.



        මං මේ කියුබ් එක keyboard එකේ delete button එක press කරල delete කරනවා. ඊට පස්සේ වම් පැත්තෙ තියෙන toolbar එකේ create කියන ටැබ් එක click කරල cylinder කියන button එක press කරනවා. එතකොට ඔයාට බලාගන්න පුලුවන් මේ වගේ  cylinder  එකක්  work area එකේ මැද හැදෙනවා.




        ඉස්සෙල්ලම මම මේ cylinder එකේ මහත චුට්ටක් අඩු කරනවා. පහල වම් පැත්තේ තියනව add cylinder කියලා toolbar එකක්. ඒකේ තියෙන radius එක මම 0.3ට අඩු කරනවා.එතකොට cylinder 1 මේ ආකාරයෙන් තමයි දිස් වෙන්නේ.





        ඊට පස්සේ object mode එක edit mode එකට වෙනස් කරනවා. එතකොට object එක දිස් වන්නේ wire frame
එකක් විදිහට. ඊට පස්සේ මං keyboard එකේ b අකුර press කරනවා. එතකොට mouse pointer එක මේ ආකාරයෙන් වෙනස් වෙනවා. දැන් තියෙන්නෙ මේ  cylinder එකේ උඩ කොටස select කරගන්න.



        සාමාන්‍ය විදියටම drag කරලා drop කරහම මෙන්න මේ ආකාරයෙන් cylinder එකේ උඩ කොටස සිලෙක්ට් වෙනවා.හැබැයි මේකෙදි මතක තියාගන්න ඕන දෙයක් තියෙනවා. ඒ තමයි මේ cylinder එකේ උඩ තියෙන හැම node එකක්ම select කරගන්න ඕනේ.  ඒ නිසා ඉස්සෙල්ලම cylinder එකේ උඩ පෘෂ්ඨය පැහැදිලිව පෙනෙන කෝණයකට 3D View එක හරවගන්න. ඒ වගේම සැලකිලිමත් වෙන්න ඕන දෙයක් තමයි උඩ පෘෂ්ඨයට අමතරව වෙන පෘෂ්ඨවල node  අහුවෙන්නේ නැතුව select කරගන්න එක.





        ඊට පස්සේ  keyboard එකේ "E" අකුර press කරන්න. ඒකෙන් අදහස් කරන්නේ extrude කියන එක.  ඒ කියන්නේ එක පෘෂ්ඨයකින් නෙරුමක් ඇති කිරීම. එතකොට cylinder එකෙක් කොටසක් උඩට නෙරා ඇවිල්ලා ඒ කොටස  mouse pointer එක චලනයත් සමග උඩ පහල අරන් යන්න පුළුවන් තත්වෙට පත්වෙනවා. මේ අපි හදන්න හදන්නේ මේසෙ උඩ කොටසයි. ඒ නිසා කැමති උසකට මේ කොටස අරන් ගිහිල්ලා click කරන්න.

        ඊට පස්සේ "S" අකුර press කරන්න. ඒකෙන් කියන්නේ මේ අපි හදපු රවුම scale කරන්න කියන එක. Mouse pointer එක නිදහසේ එහෙ මෙහෙ චලනය කරද්දී රවුම විශාල වෙනවා ඔයාට බලාගන්න පුලුවන්. මේස කකුලට සාපේක්ෂව මේ රවුම විශාල වුණාට පස්සේ mouse pointer එක click කරන්න.


        ඊට පස්සේ ආයෙත් extrude මගින්  මෙන්න මේ ආකාරට මේසයට ඝනකමක් දෙන්න පුළුවන්. තමන්ට අවශ්‍ය ඝනකමට ආවට පස්සේ  ආයෙත් mouse pointer එක click කරන්න. දැන් මේ ආකාරයෙන් තමයි  මේසය දිස්වන්නේ.



මේ පෝස්ට් එක තවත් දිග වෙන හින්දා අදට මම නවතිනවා.  ඊළඟ පෝස්ට් එකෙන් මං කියලා දෙන්නම් මේස රෙද්දක් හදලා ඒකට texture  එකක් apply කරන හැටි.


-Hasini Senanayaka-


Saturday, January 12, 2019

Blender Sinhala tutorial- Editors

        ඉතින් අද  කියලා දෙන්න යන්නේ blender  වල තියෙන  editors  ගැන. එක පාරටම දකිද්දී මේ මොනවද කියල බය හිතුනත්  ටිකක් බලාගෙන යද්දී තේරේවි මේවා හරි ලේසියිනෙ කියල. ඉතින් අද අපි අපේ පාඩම පටන් ගමු.

        මේ පහල තියෙන ෆොටෝ එක බලන්නකෝ. blender  වල default layout එක තමයි මම ඒ කොටස් වලට වෙන් කරලා තියෙන්නේ.රතු පාටින් දක්වල තියෙන්නේ  info panel  එක.
එතකොට නිල පාටින් දක්වල තියෙන්නේ  3D view  එක. timeline  එක තමයි කොළ පාටින් දැක්වෙන්නේ. එතකොට රෝස සහ තැබිලි පාටින් පිලිවෙලින්  outliner සහ properties වින්ඩෝව දැක්වෙනවා.


        සාමාන්‍යයෙන්  info panel  එකේ තියෙන්නේ එදිනෙදා පාවිච්චියට අදාල  file, Render, Window සහ Help මෙනු. Help මෙනුවට දකුණු පසින් info panel  එකේම ඔයාලට බලාගන්න පුළුවන් layout manger එක. එයට දකුණු පසින් scene manager option  එක බල ගන්න පුළුවන්. එක උවමනානම් වෙන්නේ එකම  file එකේ තියෙන  scenes  එකින් එකට  shift  වෙන්න.

        ඊලග  drop down menu එක හදුන්වන්නේ  blender render කියලයි. එක එක  render  engines  වලට මාරු වෙන්න පුළුවන් මේක පාවිච්චි කරලා. ඉතින් මේවා ගෙන තව පොස්ට් එකකින් දීර්ගව කතා කරමුකෝ.අද මම මේ ඔයාලට  basic knowledge එකක් දෙන්නම්. info එකේ අවසාන වශයෙන් values වගයක් බලාගන්න ඔයාලට පුළුවන්. ඒ values තමයි අපි පාවිච්චි කරන blender version  එක, අපේ  scene  එකේ vertices කොච්චරක් තියෙනවද faces කොච්චරක් තියෙනවද triangles, objects, lamps කොච්චරක් තියෙනවද කොච්චර memory  ප්‍රමාණයක් මේ අවස්ථාවේදී blender පාවිච්චි කරනවද වගේ ඒවා.

අපි කලින් කතා කරා වගේම මේ  3D view එකේ ප්‍රදාන වශයෙන් තියෙන්නේ අපි කරන වැඩ. මේ editors  ප්‍රදාන කොටස් 4 ට බෙදන්න පුළුවන්.

  • work area
  • header
  • toolbar
  • properties
      පහල තියෙන screenshot එකේ නිල් පාටින් දැක්වෙන්නේ  toolbar  එක. properties panel එක රෝස දැක්වෙනවා. එතකොට  header  එක තමයි රතු.


        එක සාමාන්‍යයෙන් තියෙන්නේ වින්ඩො එකේ පහළ. එකේ තමයි තියෙන්නේ එක් එක් editor එකට අදාළ මෙනු.Header එක තියෙන්නෙ සාමාන්‍යයෙන් window එකේ පහල. ඒකෙ තියෙන්නෙ එක් එක් editor එකට අදාල options. Tool bar එකේ උඩ කොටසේ  tabs  ටිකක් බලාගන්න පුළුවන් ඔයාලට. keyboard එකේ  t අකුර press කිරීම මගින්  Tool bar එක දිග හැරීම සහ හැකිලීම කරන්න පුළුවන්.

         ඒ වගේම properties panel එක "n"  අකුර press කිරීම මගින් ලබාගන්න පුලුවන්. 3D View එකට පහලින් timeline එක තියෙනවා. එමගින් ඔයාට පුළුවන් animation එකක් ප්ලේ කරගන්න. ඉතින් නමින් කියනවා වගේම properties editor එක මගින් එක් එක් එක් object වල properties හදාගන්න පුළුවන්. සාමාන්‍යයෙන්  properties window එකේ settings 12ක් තියෙනවා. ඒවා තමයි මේ පහලින් නම් කරලා තියෙන්නේ. මේ සමහර  settings මුළු scene එකටම අදාල වන අතර සමහර settings අදාළ වන්නේ select කරලා තියෙන object එකට විතරයි.


        ඉතින් අද මම ඔයාලට blender වල තියෙන editors ගැන පොඩි හැදින්වීමක් කරානේ. මම හිතනවා දළ අදහසක් එන්න ඇති කියල. අපි තව පොස්ට් එකකින් මේවා ගැන දීරඝව කතා කරමුකෝ. එහෙනම් අදට මම නවතිනවා.


 -Hasini Senanayaka-


Friday, January 11, 2019

Java Programming sinhala tutorial - Reserve words, Keyword, Identifiers, Command and Separator - Part 6

Reserve words, Keyword, Identifiers, Command and Separator

Reserve words & Keywords

    Java function හා වෙනත් භාවිතයන් සදහා වෙන්කර ඇති වචන reserve words ලෙස හදුන්වනවා. අපිට reserve words 53 ක් Java program ලිවීමේදී භාවිතා කරන්න පුළුවන්.
    මේ reserve words අතරින් වචන 50 ක් අපිට keywords ලෙස හදුනා ගන්න පුළුවන්. Keywords සදහා predefined කල තේරුමක් පවතිනවා.
    Reserve words වගේම keywords නුත් අපිට variable, class, method හෝ වෙනත් identifier එකක නමක් ලෙස පාවිච්චි කරන්න බැහැ. ඒ වගේම const හා goto යන keywords එකක් වගේම reserve words වන වචන 2ක දැන් භාවිතා කරන්නේ නැහැ.

ex:- if, else, byte, int, void, boolean, class

null, true, false යන මේ වචන 3 reserve words වුනාට keywords වන්නේ නැහැ.

Identifiers

Java program ලිවීමේදී variable, class, method වැනි දේ හදුනා ගැනීමට පාවිච්චි කරන්න වචන identifiers ලෙස හදුනා ගන්න පුළුවන්.

ex:-
class Example {}
int total;

පහත කරුණු ගැන identifiers නිර්මාණයේදී සැලකිලිමත් විය යුතුයි.

  • identifier එක සදහා එක වචනයක් පමණක් භාවිතා කරන්න.
                  int myName ; // correct
                  int my name ; // wrong
  • a-z, A-Z, 0-9, $, _ මේ සංකේත විතරක් identifiers නිර්මාණයේදී භාවිතා කල යුතු වේ. නමුත් පළමු අකුර a-z, A-Z විය යුතුයි.
                 int total ; // correct
                 int 123 ; // wrong
  • අපිට identifier එක සදහා ඕනෑම තරමක් දිග වචනයක් පාවිච්චි කරන්න පුළුවන්.
                 int my_name_is_aaaaaaaaaaaaaaaaaaaaaaaaaaaa ;
  • Java language එක case sensitive නිසා identifiers නිර්මාණයේදී එය භාවිතා කල හැක.
                 int a ; // correct
                 int A ; // correct
  • සාමාන්‍යයෙන් class name එකෙහි පළමු අකුර capital ද variable name එකෙහි පළමු අකුර simple ද ලෙස භාවිතා කරනවා.
                 int total ; // correct
                 class Example {} // correct

Comments

Java language එකේ comment වර්ග 2 ක් පවතී.
  1. Line comment
  2. Block comment
Line comment
source code එකේ ඇති එක line එකක් පමණක් compiler සැලකිල්ලට ගත යුතු නොවේ නම් මෙම ක්‍රමය භාවිතා කල හැක.


Block comment
source code එකේ ඇති line කිහිපයක් compiler සැලකිල්ලට ගත යුතු නොවේ නම් මෙම ක්‍රමය සුදුසු වේ.


Separator

source code එකේ ඇති characters වෙන් කිරීමට යොදා ගන්නා සංකේත separators ලෙස හදුන්වයි.

ex:- , ; :  ( ){ } [ ]

- චමෝදි -