วันศุกร์ที่ 13 พฤษภาคม พ.ศ. 2559

Step 3 เรียนรู้ Syntax ของ PHP

โครงสร้างของ PHP

  • PHP สามารถเขียนในส่วนไหนของ HTML Document ก็ได้ หรือจะไม่มี HTML เลยก็ได้
  • ไฟล์ที่สร้างขึ้นต้องมีนามสกุลเป็น .php
  • Script เริ่มต้นด้วย <? php และจบด้วย ?>

    <?php
        ใส่คำสั่งของ PHP ลงในส่วนนี้
    ?>

การใส่ Commment ใน PHP

ส่วนของ Comment ใน PHP หรือการเขียนโปรแกรมไม่ว่าจะภาษาใดก็ตามจะเป็นส่วนที่ใช้สำหรับสื่อสารกับคนที่มาอ่าน Source Code จะไม่เกี่ยวข้องกับการประมวลผลของโปรแกรมแต่อย่างใด ส่วนใหญ่แล้ว Comment จะใช้ในการ เตือนความจำ หรือ การอธิบาย Source Code โดยในรูปแบบการเขียน Comment ใน PHP จะประกอบด้วย
  • แบบบรรทัดเดียว

    <?php
        // คำอธิบาย Source Code
        // Code หลังจาก เครื่องหมาย // นี้จะไม่ถูกประมวลผล
    ?>

  • แบบหลายบรรทัด

    <?php
        /∗  
            เตือนว่า Code นี้ยังไม่เสร็จสมบูรณ์
            
            Code ในส่วนนี้จะไม่ถูกประมวลผล
        ∗/
    ?>

Case-Sensitive

PHP เป็นภาษาที่เรียกว่า Case-Sensitive หมายความว่า ตัวอักษร A และ a มีความหมายต่างกัน เพราะฉะนั้นคนที่เริ่มต้นเขียนต้องระวังเรื่องของความถูกต้องของตัวอักษรด้วย
ในตัวอย่างผลการ Run จะได้ผลลัพธ์เพียงแค่บรรทัดแรกเท่านั้นเนื่องจาก $color เป็นตัวเล็กทั้งหมด แต่ใน Code บรรทัดที่ 8 ใช้ $COLOR ที่เป็นตัวใหญ่ทั้งหมด รวมทั้ง $coLOR ในบรรทัดที่ 9 ด้วย

    <!DOCTYPE html>
    <html>
    <body>

    <?php
    $color = "red";
    echo "My car is " . $color . "<br>";
    echo "My house is " . $COLOR . "<br>";
    echo "My boat is " . $coLOR . "<br>";
    ?>

    </body>
    </html>

Step 2 การติดตั้ง XAMPP

การติดตั้ง XAMPP

ก่อนจะทำการติดตั้ง เราจะเริ่มต้นจากคำถามว่าทำไมต้องเป็น XAMPP
  • เนื่องจากเราไม่มี Server ตั้งอยู่ที่บ้าน ดั้งนั้นเราจึงต้องสร้าง Environment ที่เหมือนกับ Server อยู่ที่บ้านเพื่อให้เราสามารถทดสอบโปรแกรมได้
  • นอกจาก XAMPP ยังมีอีกหลายตัวทั้ง WAMP, AppServ แต่ที่เราเลือก XAMPP เพราะเป็นตัวเดียวที่ไม่ต้องติดตั้ง และยังสามารถ Copy ให้คนอื่นก็ง่าย
  • XAMPP ประกอบไปด้วย Apache, MySQL, PHP และ Perl ตัวเดียวได้ครบเขียนได้ทั้ง PHP และ Perl
ขั้นตอนการติดตั้งมีดังนี้
  1. Download XAMPP ได้ที่นี่ โดยมีให้เลือก 3 ทางคือ Installer, Zip และ 7z(7 Zip)
    ตัวที่แนะนำคือ เลือกเป็น .zip จะได้ไม่ต้องทำการติดตั้งลงบนเครื่อง แต่สำหรับใครที่มีโปรแกรมพวก VMWare จะไม่สามารถใช้ .zip ได้ ต้องเลือกเป็นแบบ Installer แทน
  2. นำเอาไฟล์ XAMPP มาแตก zip ไว้ที่ Drive C: หรือ Drive ไหนก็ได้
  3. เวลาเปิดให้เข้าไปใน Folder XAMPP Duble Click ที่ไฟล์ XAMPP-Control.exe
  4. เลือก Start Service ที่ต้องการ โดยทั่วไปเราจะ start เฉพาะ Apache กับ MySQL

Step 1 ทำความรู้จักกับ PHP

เริ่มต้นการเขียน PHP

ก่อนที่จะทำความรู้จักกับ php สิ่งที่เราจำเป็นต้องรู้ในการทำเว็บ คือ

HTML

เป็นส่วนที่เป็นพื้นฐานสำคัญของเว็บเพราะเป็นส่วนของ content หรือข้อมูลที่เราแสดงอยู่บนเว็บ

JavaScript

เป็นส่วนที่ทำให้เว็บของเราเป็น Dynamic คือมีการโต้ตอบกับ user ได้ เช่น การลากวาง, การกดปุ่ม, การ pop-up dialog และอื่นๆ

CSS

เป็นส่วนของการจัดการเรื่องของความสวยงามการตกแต่งหน้าตาของเว็บให้ดูดี

Serverside Script

Serverside เป็นส่วนของการจัดการที่ฝั่ง Server เมื่อไหร่ก็ตามที่เราต้องการเก็บข้อมูลของ user เราจะเลือกเขียน code ที่ฝั่งนี้ เช่น ถ้าเราเปิดอบรม หรือ สัมนา เราก็ต้องการรู้ว่าคนที่จะเข้างานมีกี่คนและมีใครบ้าง ข้อมูลที่เราต้องเก็บคือ คนที่อยากมาเรียนหรือมาสัมนา เราก็ต้องเขียนแบบฟอร์มเพื่อให้คนที่ต้องการลงทะเบียนกรอกข้อมูลเข้ามา แล้วเก็บลง database เมื่อไหร่ก็ตามที่เราต้องการเก็บข้อมูลลง database เราต้องเขียน Code ฝั่ง Server เสมอ ส่วนภาษาก็มีให้เลือกใช้มากมายไม่ว่าจะเป็น PHP, ASP.net, JSP Servlet, Ruby, Phyton และอื่นๆ
หลังจากที่เราเข้าใจแล้วว่า PHP เป็น Serverside Script เรามาทำความรู้จักกับ PHP อีกซักนิดนึง
  • PHP ย่อมาจาก PHP: Hypertext Preprocessor
  • PHP เป็นภาษาที่มีคนใช้มากที่สุดในโลก
  • PHP สามารถ Download และใช้งานได้ฟรี
  • PHP เป็น Serverside Script (ถูก execute ที่ฝั่ง Server)
ทีนี้เราก็มาดูกันว่าเริ่มต้นเขียนต้องทำยังไงบ้าง
  • เราต้องตั้งตั้งนามสกุลของไฟล์เป็น .php
  • เราสามารเขียน Code ที่เป็น PHP ไว้ภายใน โดยเปิดด้วย <?php และปิดท้ายด้วย ?> (ตั้งแต่ PHP version 5.3 ถ้าในหน้านั้นมีแต่ PHP เราไม่จำเป็นต้องปิด tag ด้วย ?>)

    <?php
        echo "ข้อความที่ต้องการแสดงผล";
    ?>

  • หลังจากนั้นเราสามารถที่จะแทรก Code ที่เป็น PHP ลงไปใน HTML ได้เลย ตามตัวอย่าง

    <!DOCTYPE html>
    <html>
    <body>

    <?php
    echo "My first PHP script!";
    ?>

    </body>
    </html>

วันอังคารที่ 26 เมษายน พ.ศ. 2559

เรื่องของ เมโมรี่ Stack กับ Heap

เรื่องของ เมโมรี่ Stack กับ Heap

เรื่องของ เมโมรี่ Stack กับ Heap ต่างกันยังไง

ตั้งแต่เราเริ่มหัดเขียนโค้ด เราก็รู้จักกับการประกาศตัวแปรชนิดเบื้องต้นต่างๆ เช่น int, double หรือจะเป็นพวกตัวแปรที่ซับซ้อนเช่น arrays และ structs เราก็ได้เรียนรู้ syntax ที่ใช้ประกาศตัวแปรบนภาษาต่างๆ ซึ่งจริงๆมันก็มี ลักษณะคล้ายกันไปแทบทุกภาษา ไม่ว่าจะเป็น MATLAB, Python, หรืออื่นๆ ก็คือการทำให้ตัวแปรเหล่านี้ไปอยู่บน stack ในภาษา C นั่นเอง

Stack คืออะไร?

นั่นสิ Stack คืออะไร? มันคือพื้นที่พิเศษใน memory (หรือบางคนแรียก RAM ก็ไม่ผิดซะทีเดียว) บนคอมพิวเตอร์ของคุณ ที่จะเก็บค่าของตัวแปรที่ถูกสร้างไว้ในทุกๆ function (รวมถึง function main() ในภาษา C ด้วย) แบบชั่วคราว (ชั่วคราวหมายถึงเดี๋ยวค่าของตัวแปรก็หายไปได้)
Stack นั้นเป็นโครงสร้างข้อมูลที่เรียกว่า “FILO” (first in, last out) ที่ถูกจัดการด้วย CPU อย่างรัดกุมสุดๆ
ทุกๆตัวแปร และทุกๆครั้งที่ตัวแปรถูกประกาศขึ้นภายใต้ function จะถูกเสียบเข้าไปใน stack ตามลำดับการสร้าง
และเมื่อฟังชั่นทำงานจบ ทุกๆตัวแปรใน function นั้นจะถูกปล่อยให้เป็นอิสระ หรือ freed (ตามที่เราเข้าใจว่าตัวแปรถูกลบไป ถูกทำให้หายไป แต่จริงๆแล้วมันคือการปล่อยให้เป็นอิสระ) เมื่อตัวแปรใน stack ถูกปลดปล่อย พื้นที่บน memory ก็พร้อมที่จะให้ stack อื่นๆ ได้หยิบไปใช้งานต่อไป
ข้อได้เปรียบของระบบที่ใช้งาน stack ในการเก็บตัวแปรก็คือ memory จะถูกจัดการ โดยที่คุณไม่ต้องเหนื่อยมาก
เวลาจะใช้งานมันคุณก็ไม่ต้องมานั่งเขียนโค้ดจัดสรร หาพื้นที่ว่างบน memory หรือต้องคอยมานั่งลบตัวแปรที่ไม่ได้ใช้ด้วยตัวคุณเอง
และที่สำคัญกว่านั่นก็คือ เราบอกไปแล้วว่า CPU จะเป็นคนจัดการ memory ดังนั้นมันจึงมีประสิทธิภาพสูง การอ่าน และการบันทึกตัวแปรลงใน memory จึงมีความเร็วมากๆ
ถ้าจะหาวิธีจำการทำงานของ stack หละก็ ให้คิดว่า stack คือหลอดเมนทอส เมื่อ function สร้างตัวแปรขึ้นมา ตัวแปรก็จะถูกเสียบลงในหลอดเหมือนเมนทอสถูกยัดลงไปในหลอดทีละเม็ดๆ เรียงลำดับกันไป  และ เมื่อ function ทำงานจบ ตัวแปรที่เคยเสียบลงไปใน stack ทั้งหมด จะเด้งออกมาจากหลอด (และตัวแปรก็หายไปตลอดกาล)
ดังนั้นตัวแปรใน stack จะเป็นตัวแปร local โดยปริยาย
ซึ่งมันตรงกับคอนเซ็ปท์ของ variable scope ที่เราอาจได้เคยเรียนในหนังสือหลายๆเล่ม ในเนื้อหาของ ตัวแปรแบบ local vs ตัวแปรแบบ global
ซึ่งเป็น Bug ยอดนิยมสำหรับโปรแกรมเมอร์มือใหม่ทั้งหลายที่พยายามจะเข้าถึงตัวแปรบน stack ที่ได้ถูกประกาศใน function จากโค้ดบรรทัดที่อยู่นอก function นั้น
ลักษณะที่ควรจำไว้ให้ขึ้นใจของ stack ก็คือ มันมีขีดจำกัดของ size (หรือขนาด หน่วยเป็นไบท์) ของตัวแปรที่จะถูกบรรจุลงใน stack (ขึ้นอยู่กับ OS ของเครื่อง)
ข้อจำกัดนี้ไม่มีผลกับตัวแปรที่บันทึกลงในส่วนที่เรียกว่า Heap
สรุปเรื่องของ stack:
  • stack โตขึ้น ลดหดตัวลง ตามตัวแปรใน functions ที่เสียบเข้ามา และเด้งออกไป
  • คุณไม่จำเป็นต้องมานั่งเขียนโค้ดจัดการ memory เองเพราะตัวแปรจะสร้างและถูกปล่อยให้เป็นอิสระอัตโนมัติ
  • stack มีข้อจำกัดเรื่อง size ที่จะเก็บลงไป
  • ตัวแปรใน stack จะมีชีวิตอยู่ และถูกเรียกใช้ได้ภายใต้ function ที่สร้างมันขึ้นมา เมื่อจบฟังชั่น ตัวแปรจะหายไป

Heap คืออะไร?

heap คือพื้นที่ของ memory ในคอมพิวเตอร์ของคุณ ที่จะถูกจัดสรร/จัดการด้วย CPU อย่างคร่าวๆ ไม่รัดกุมสักเท่าไหร่ โดยพื้นที่ของ heap ส่วนใหญ่มันจะเป็นพื้นที่ว่างขนาดกว้างๆบน memory
ในการจองหน่วยความจำแบบ heap คุณต้องเรียกใช้งาน  malloc() หรือ calloc() ซึ่งเป็นฟังชั่นมาตรฐานใน ภาษา C  เมื่อใดก็ตามที่คุณใช้งานพื้นที่บน heap ในการเก็บข้อมูล คุณต้องแบกรับภาระในการเรียก free() เพื่อเลิกจับจอง หรือเลิกใช้งานพื้นที่บน heap เมื่อคุณไม่ต้องการใช้งานมันอีกต่อไป
ถ้าคุณลืมที่จะ free() หลังจากเลิกใช้งานมันแล้ว เราเรียกมันว่า memory leak ทำให้ memory บน heap ยังถูกเก็บข้อมูลขยะไว้ (และ process อื่นๆ ก็จะใช้งานมันไม่ได้)
โดยในภาษา C เราจะสามารถเห็นมันในส่วนของ debugging โดยใช้เครื่องมือที่เรียกว่า valgrind มันจะช่วยคุณตรวจสอบหาโค้ดที่ทำให้ เกิด memory leak
ต่างจาก stack โดยที่ heap จะไม่มีข้อจำกัดเรื่อง size ของตัวแปร (แต่อย่าลืมว่า มันไม่สามารถเก็บข้อมูลได้เกิน Hardware ที่เราใช้รันโค้ดอยู่) หน่วยความจำแบบ Heap จะช้ากว่า stack เพียงเล็กน้อย ในการอ่านและเขียน เพราะจริงๆแล้วเราใช้ pointers ในการเข้าถึง heap เดี๋ยวเราค่อยมาพูดถึงเรื่องนี้อีกที
ความต่างจาก stack อีกข้อหนึ่ง ตัวแปรที่ถูกสร้างบน heap จะสามารถเข้าถึงได้จากทุกๆ function และทุกๆที่บนโปรแกรมของคุณ ตัวแปรบน Heap มักจะเห็นว่าถูกใช้งานบน global scope

Stack vs Heap ข้อดี ข้อเสีย

Stack

  • เข้าถึงข้อมูลได้เร็วมาก
  • ไม่มีความจำเป็นต้อง สร้าง และลบตัวแปรแต่อย่างใด
  • พื้นที่บนหน่วยความจำ จะถูกจัดการอย่างรัดกุมด้วย CPU และพื้นที่บนหน่วยความจำ จะเป็นระเบียบ ไม่แบ่งเป็นส่วนๆแบบใน heap
  • เป็นตัวแปรในระกับ local เท่านั้น
  • มีข้อจำกัดเรื่อง size ของตัวแปร (ขึ้นอยู่กับระบบ OS)
  • ตัวแปรใน stack จะมี size คงที่ เพิ่มหรือลดไม่ได้

Heap

  • ตัวแปรเข้าถึงและใช้งานจากที่ไหนก็ได้ เป็นระดับ Global
  • ไม่มีข้อจำกัดเรื่อง size ของตัวแปร
  • เข้าถึงได้ช้ากว่า stack
  • ไม่การันตี ว่าจะเป็นการใช้งาน memory อย่างมีประสิทธิภาพ และมันจะถูกแยกเป็นส่วนๆ
    เพราะพื้นที่จะถูกจอง และปล่อยว่าง อยู่ตลอดเวลา เช่นเมื่อคุณต้องการพื้นที่ว่างสักที่ CPU จะหาตรงไหนก็ได้
    ที่ใหญ่พอจะบรรจุข้อมูลของคุณ
  • คุณจะต้องจัดการ จัดสรร memory เอง
  • ตัวแปรสามารถ resized ด้วยการเรียก realloc()

ตัวอย่าง

ตัวอย่างนี้เป็นโค้ดสั้นๆในการสร้างตัวแปรบน stack ซึ่งคุณอาจจะคุ้นเคยหน้าตาของมัน เพราะมันก็เหมือนโค้ดที่คุณเขียนกันประจำอยู่แล้ว

















#include <stdio.h>
 
double multiplyByTwo (double input) {
  double twice = input * 2.0;
  return twice;
}
 
int main (int argc, char *argv[])
{
  int age = 30;
  double salary = 12345.67;
  double myList[3] = {1.2, 2.3, 3.4};
 
  printf("double your salary is %.3f\n", multiplyByTwo(salary));
 
  return 0;
}
ผลลัพธ์
double your salary is 24691.340
บรรทัดที่ 10, 11 และ 12 เราได้สร้างตัวแปร int และ double และอาเรย์ของ doubles สามตัว
ตัวแปรเหล่านี้จะถูกเสียบลงใน stack ตามลำดับ ในตอนที่ฟังชั่น main() ได้สร้างมันขึ้นมา
และเมื่อ main() ทำงานจบลง  (โปรแกรมก็จะหยุดทำงานเช่นกัน) ตัวแปรเหล่านั้นจะถูกเด้งออกจาก stack คล้ายกันในฟังชั่น multiplyByTwo() ที่มีตัวแปร twice เป็นชนิด double ที่จะถูกเสียบลงใน stack เมื่อฟังชั่น multiplyByTwo() ได้สร้างตัวแปรขึ้นมา และต่อจากนั้น ทันทีที่ multiplyByTwo() ทำงานจบลง ตัวแปร twice จะถูกเด้งออกจาก stack และข้อมูลก็จะหายไปตลอดกาล
แต่ให้จำไว้ว่า หากต้องการเขียนภาษา C ให้เก็บตัวแปรไว้ แม้ function ที่สร้างตัวแปรนั้นทำงานจบไปแล้ว ให้เราใช้คีย์เวิร์ด static ในตอนประกาศตัวแปรนั้น
ตัวแปรใดที่ถูกประกาศพร้อมกับคีย์เวิร์ด static ตัวแปรนั้นจะหลายเป็นตัวแปรที่ คล้ายๆกับ global variable คือสามารถใช้งานได้นอกขอบเขตของ function เพียงแต่เมื่อ function ที่สร้างมันขึ้นมาทำงานจบแล้ว ตัวแปรนี้ก็จะถูกเด้งออกจาก stack แล้วหายไปอยู่ดี
มันอาจจะดูเป็นโครงสร้างที่แปลกๆสักหน่อย แต่ในบางสถานการณ์ คุณก็อาจจะได้ใช้ประโยชน์กับมัน
ข้างล่างนี้เป็นโค้ดอีกเวอร์ชั่นของโปรแกรมตัวอย่างแรกซึ่งเราจะมาลองใช้ heap แทน stack กันดู































#include <stdio.h>
#include <stdlib.h>
 
double *multiplyByTwo (double *input) {
   double *twice = malloc(sizeof(double));
   *twice = *input * 2.0;
   return twice;
}
 
int main (int argc, char *argv[])
{
   int *age = malloc(sizeof(int));
   *age = 30;
   double *salary = malloc(sizeof(double));
   *salary = 12345.67;
   double *myList = malloc(3 * sizeof(double));
   myList[0] = 1.2;
   myList[1] = 2.3;
   myList[2] = 3.4;
 
   double *twiceSalary = multiplyByTwo(salary);
 
   printf("double your salary is %.3f\n", *twiceSalary);
 
   free(age);
   free(salary);
   free(myList);
   free(twiceSalary);
 
   return 0;
}
ตามโค้ดข้างบนจะใช้ malloc() เพื่อจอง memory บน heap และจากนั้นก็ใช้ free() เมื่อไม่ต้องการใช้ตัวแปรอีกแล้ว จะเห็นว่ามันไม่ใช่เรื่องยากอะไรเลย แต่มันเป็นภาระที่ต้อง free() หลังจากเลิกใช้ตัวแปรแล้ว
ให้สังเกตุอีกข้อหนี่งคือจะมีเครื่องหมายดอกจันทน์ * ตามตัวแปรไปทุกๆจุด ถ้าสงสัยว่ามันคืออะไร? คำตอบคือ มันเป็นเครื่องหมายของ pointers
โดยคำสั่ง malloc() (และ calloc() กับ free() ) เป็นการทำงานกับ pointers เสมอ ไม่ใช่การทำงานกับค่าตัวแปร เหมือนตัวแปร type พื้นฐานทั่วไป เราจะพูดถึงเรื่อง pointers ในบทอื่น
ให้อธิบายคร่าวๆคือ pointers เป็นตัวแปรชนิดพิเศษในภาษา C ที่จะเก็บ addresses ของ memory แทนที่จะเก็บค่าตัวตัวแปรตรงๆ แบบตัวแปรชนิดอื่น ให้สังเกตุบรรทัดที่ 5 จากตัวอย่างข้างบน ตัวแปร twice ไม่ได้เป็น double  แต่มันเป็น pointer ที่เก็บตำแหน่ง หรือชี้เป้าไปยังของข้อมูลที่เป็น double ซึ่งข้อมูลที่  pointer ตัวนี้เก็บไว้ก็คือ ตัวเลขที่อยู่ (หรือ Address) ของ memory ที่ข้อมูล double ได้บันทึกไว้

เราควรใช้ Heap ตอนไหน?

คำถามคือคุณควรใช้ heap ตอนไหน และใช้ stack ตอนไหน?
ก็ถ้าเมื่อคุณต้องการใช้ memory ขนาดใหญ่ๆ เพื่อเก็บข้อมูลใหญ่ๆ (เช่น array ที่มีสมาชิกเยอะๆ หรือ struct ที่เก็บข้อมูลมหาศาล) และเมื่อคุณต้องการให้ตัวแปรนั้น คงอยู่ในระบบนานๆ (เหมือน global veriable) ไม่หายไปหลังจบ function นั่นแหละที่คุณควรใช้ heap
และถ้าคุณต้องการใช้งานตัวแปรเล็กๆ และใช้งานภายใต้ function เฉยๆ คุณก็ควรจะใช้งาน stack ถูกไหม เพราะนอกจากจะตอบโจทย์ที่ต้องการแล้ว อย่าลืมว่า stack มันง่าย และเร็ว ไม่มี memory leak อีกด้วย
หรือถ้าคุณใช้ตัวแปรอย่าง arrays หรือ structs ที่สามารถ resize ได้ตลอดเวลาแบบ dynamic (ก็เช่น arrays ที่เพิ่ม และลดจำนวนเมื่อไหร่ก็ได้ที่ต้องการ)  คุณก็ต้องใช้ heap อยู่แล้ว
และคุณก็ต้องเรียกใช้ malloc(), calloc(), realloc() และ free() เพื่อจัดการ จัดสรรหน่วยความจำให้ดี ไม่ให้เกิดตัวแปรขยะสะสมในระบบ
เดี๋ยวเราจะมีการพูดถึงการประกาศตัวแปรแบบ dynamically หลังจากบทของ pointers

วันศุกร์ที่ 20 พฤศจิกายน พ.ศ. 2558

Blender คือ อะไร

Blender คือ อะไร
      โปรแกรม Blender เป็นโปรแกรม Open Source เปิดให้ดาวน์โหลดไปใช้งานฟรี และร่วมเขียนโปรแกรมหรือส่วนเสริมเพิ่มเติมได้ มีความสามารถมากพอๆกับโปรแกรมสร้างงาน 3 มิติ ตัวอื่นๆ หรือเหนือกว่าโปรแกรมที่เสียค่าลิขสิทธิ์บางตัวอีกด้วย


ความสามารถที่โดดเด่นของโปรแกรม Blender

  - การ Render ที่เหมือนจริง




  - การสร้างโมเดลที่ง่ายและรวดเร็ว




  - การสร้าง Material ที่เหมือนจริง




  - การสร้าง Rigging ให้ Animation ง่ายและรวดเร็ว



  - โหมดการปั้นโมเดล Sculpting




  - เครื่องมือที่พร้อมสำหรับการสร้างงาน Animation




  - เครื่องมือการสร้าง UV Unwrapping ที่ใช้งานง่าย





  - การสร้าง Simulation : ของเหลว, ลม, เส้นผม, ผ้า, ฟิสิกส์ และ Particle




  - สามารถสร้างเกมได้




  - Camera และ Object Tracking




  - ตัดต่อ Video ในตัวได้




  - การส่งออกไฟล์ที่หลากหลาย




  - และยังมีความสามารถอื่นๆ อีกมากมาย สามารถดูได้จากตารางเปรียบเทียบกับโปรแกรมอื่นๆ ดังภาพ




จาก ภาพการเปรียบเทียบดังกล่าวจะเห็นว่าคุณสมบัติของโปรแกรม Blender นั้นไม่ได้มีน้อยกว่าโปรแกรมที่เสียค่าลิขสิทธิ์โปรแกรมอื่นๆ เลย โปรแกรม Blender นั้นมีการพัฒนาอยู่เรื่อยๆ และมีเวอร์ชันใหม่ๆออกมาตลอด  ซึ่งสามารถดาวน์โหลดได้ที่เว็บไซต์ www.blender.org  ไปที่ดาวน์โหลด
      โปรแกรม Blender นั้นยังทำงานได้หลายแพลตฟอร์มระบบปฏิบัติการ Windows 8 7 Vista, Mac OSX, GNU/Linux และ FreeBSD ซึ่งในห้าดาวน์โหลดโปรแกรม ได้มีไว้ให้เลือกดาวน์โหลดอยู่แล้ว
      นอกจากคุณสมบัติที่กล่าวมาโปรแกรม Blender ยังมีจุดเด่นอื่นๆอีกดังนี้ เป็นโปรแกรมที่กินทรัพยากรระบบน้อย พื้นที่ในการติดตั้งก็น้อยโดยตัวติดตั้งมีขนาด ไม่ถึง 100 เมกกะไบต์ ติดตั้งง่ายใช้เวลาน้อย  สร้างงานได้หลากหลายรูปแบบ และมีเว็บไซต์ที่ให้ความรู้อยู่มากมาย ทั้งภาษาไทยและภาษาอังกฤษ


วันพุธที่ 9 กรกฎาคม พ.ศ. 2557

คณิตศาสตร์ทางคอมพิวเตอร์

จำนวนเชิงซ้อน

ในทางคณิตศาสตร์ เซตของจำนวนเชิงซ้อน คือ เซตที่ต่อเติมจากเซตของจำนวนจริงโดยเพิ่มจำนวน i ซึ่งทำให้สมการ i2 + 1 = 0 เป็นจริง และหลังจากนั้นเพิ่มสมาชิกตัวอื่นๆ เข้าไปจนกระทั่งเซตที่ได้ใหม่มีสมบัติปิดภายใต้การบวกและการคูณ จำนวนเชิงซ้อน z ทุกตัวสามารถเขียนอยู่ในรูป x + iy โดยที่ x และ y เป็นจำนวนจริง โดยเราเรียก x และ y ว่าส่วนจริงและส่วนจินตภาพของ z ตามลำดับ
เซตของจำนวนเชิงซ้อนทุกตัวมักถูกแทนด้วยสัญลักษณ์ mathbb{C} จากนิยามข้างต้นเราได้ว่าเซตของจำนวนจริงเป็นสับเซตของเซตของจำนวนเชิงซ้อน ดังนั้นจำนวนจริงทุกตัวเป็นจำนวนเชิงซ้อน เราสามารถบวก ลบ คูณ และหารสมาชิกสองตัวใดๆ ของเซตของจำนวนเชิงซ้อนได้ (เว้นแต่ในกรณีที่ตัวหารคือศูนย์) และผลลัพธ์ที่ได้จำเป็นจำนวนเชิงซ้อนเสมอ ดังนั้นในทางคณิตศาสตร์เราจึงกล่าวว่าเซตของจำนวนเชิงซ้อนเป็นฟีลด์ นอกจากนี้เซตของจำนวนเชิงซ้อนยังมีสมบัติปิดทางพีชคณิต (algebraically closed) กล่าวคือ พหุนามที่มีสัมประสิทธิ์เป็นจำนวนเชิงซ้อนจะมีราก (พหุนาม)เป็นจำนวนเชิงซ้อนด้วย สมบัตินี้เป็นที่รู้จักในชื่อทฤษฎีบทมูลฐานของพีชคณิต
นอกจากนี้ ในทางคณิตศาสตร์แล้วคำว่า "เชิงซ้อน" ถูกใช้เป็นคำคุณศัพท์ที่มีความหมายว่าฟีลด์ของตัวเลขที่เราสนใจคือฟีลด์ของ จำนวนเชิงซ้อน ยกตัวอย่างเช่น การวิเคราะห์เชิงซ้อน, พหุนามเชิงซ้อน, แมทริกซ์เชิงซ้อน, และพีชคณิตลีเชิงซ้อน

Click for full-size image


กลับสู่หน้าหลัก

Laravel

  Laravel Framework คือ PHP Framework ตัวหนึ่งที่ถูกออกแบบมาเพื่อพัฒนาเว็บแอพพลิเคชั่นต่างๆ ในรูปแบบ MVC (Model Views Controller) ซึ่งมีการแ...