สำหรับนักศึกษาปี 1 CS (พร้อมแนะนำเครื่องมือ)
สไลด์นี้ประกอบด้วยส่วนแนะนำเครื่องมือ และกิจกรรม 3 ส่วน ที่จะช่วยให้คุณเข้าใจเวกเตอร์ทั้งในเชิงภาพ การเขียนโปรแกรม และการพัฒนาเกม
📖 แนะนำ Python · Colab · Unity · C# Part 1 GeoGebra – 15-20 นาที Part 2 Python / NumPy – 20-25 นาที Part 3 Unity / C# – 20-25 นาที
👉 ใช้ปุ่มลูกศรหรือปุ่มซ้าย/ขวาเพื่อเปลี่ยนสไลด์
| ส่วน | เครื่องมือ | เวลาโดยประมาณ | เป้าหมาย |
|---|---|---|---|
| Part 1 | GeoGebra | 15-20 นาที | เข้าใจเวกเตอร์เชิงภาพ: ขนาด ทิศทาง การบวก และการคูณด้วยสเกลาร์ |
| Part 2 | Python / NumPy | 20-25 นาที | ใช้เวกเตอร์แทนข้อมูลและคำนวณด้วยโค้ด |
| Part 3 | Unity / C# | 20-25 นาที | ใช้เวกเตอร์แทนตำแหน่ง ทิศทาง และการเคลื่อนที่ในเกม |
💡 เป้าหมายรวม: เชื่อมโยงแนวคิดเวกเตอร์จากคณิตศาสตร์ สู่วิทยาการข้อมูล และการพัฒนาเกม
เครื่องมือที่ใช้ในแบบฝึกหัดนี้
| เครื่องมือ | ประเภท | ใช้ทำอะไรในแบบฝึกหัดนี้ |
|---|---|---|
| 🐍 Python | ภาษาโปรแกรม | เขียนโค้ดคำนวณเวกเตอร์ จัดการข้อมูล |
| ☁️ Google Colab | คลาวด์ Notebook | เขียน Python บนเว็บ ไม่ต้องติดตั้ง ใช้ GPU ฟรี |
| 🎮 Unity | Game Engine | จำลองการเคลื่อนที่ 3 มิติด้วย Vector3 |
| #️⃣ C# | ภาษาโปรแกรม | เขียนสคริปต์ควบคุมวัตถุใน Unity |
🔗 ทุกเครื่องมือฟรี! Python, Colab, Unity (Personal) และ C# (ใน Unity) ใช้งานได้ไม่มีค่าใช้จ่าย
ภาษาโปรแกรมยอดนิยม เรียนง่าย ใช้ได้หลากหลาย
ตัวอย่างโค้ด Python พื้นฐาน:
✅ ใน Part 2 เราจะใช้ Python + NumPy ในการคำนวณเวกเตอร์โดยตรง
Colaboratory — เขียน Python บนคลาวด์ ฟรี! ไม่ต้องติดตั้ง
🚀 เริ่มต้นง่าย: ไปที่ colab.research.google.com → Login Google → สร้าง Notebook ใหม่
💡 ใน Part 2 เราจะรันโค้ด Python บน Colab กัน!
เครื่องมือสร้างเกม 3D / 2D ชั้นนำของโลก
Unity คือ Game Engine (เอนจินเกม) ที่รองรับการสร้างเกม, แอนิเมชัน, VR/AR และจำลองสถานการณ์
C# (ซีชาร์ป) คือภาษาโปรแกรมเชิงวัตถุ (OOP) ที่ทันสมัย มีประสิทธิภาพสูง
✅ ใน Part 3 เราจะใช้ Unity + C# เพื่อให้ Cube เคลื่อนที่ด้วยเวกเตอร์
เวลา 15-20 นาที
จุดประสงค์ หลังทำกิจกรรมนี้ นักศึกษาควรอธิบายได้ว่า
🛠 เครื่องมือ: เปิด GeoGebra Graphing Calculator
คำสั่ง:
คำถาม:
คำตอบที่คาดหวัง:
คำสั่ง: เปลี่ยนจุด B เป็น \(B = (3, 5)\) แล้วสังเกตเวกเตอร์ใหม่
คำถาม:
คำตอบที่คาดหวัง:
\(\overrightarrow{AB} = [3, 5]\) เวกเตอร์เปลี่ยนทั้งขนาดและทิศทางเล็กน้อย เพราะค่าตามแกน x และ y เปลี่ยน
คำสั่ง: สร้างเวกเตอร์ \(u = [2, 4]\) และ \(v = [3, 1]\) จากนั้นสร้างผลบวก \(u+v\)
คำถาม:
คำตอบที่คาดหวัง:
คำสั่ง: ใช้ \(u = [2, 4]\) แล้วสร้าง \(2u, 0.5u, -u\)
คำถาม:
คำตอบที่คาดหวัง:
เวลา 20-25 นาที
จุดประสงค์ หลังทำกิจกรรมนี้ นักศึกษาควรอธิบายได้ว่า
🐍 เกร็ดความรู้: Python & NumPy
Python เป็นภาษาโปรแกรมที่นิยมใน Data Science
NumPy เป็นไลบรารีสำหรับคำนวณเวกเตอร์ เมทริกซ์ และการดำเนินการเชิงตัวเลข มีประสิทธิภาพสูง
คำสั่ง: รันโค้ดต่อไปนี้ใน Colab หรือ Jupyter
โดยกำหนดให้ข้อมูลหมายถึง [น้ำหนัก, ส่วนสูง, จำนวนวิชา, คะแนนสอบ]
คำถาม:
คำตอบที่คาดหวัง:
เวกเตอร์นี้มี 4 ค่า ค่า 165 หมายถึงส่วนสูง ค่า 85 หมายถึงคะแนนสอบ เวกเตอร์นี้แทนข้อมูล
เวกเตอร์ใหม่: [75, 170, 3, 85]
คำถาม:
คำตอบที่คาดหวัง: Student A คะแนน 85, Student B ลง 4 วิชา, ทั้งสองมี 4 มิติเท่ากัน, ถ้าบวกต้องบวกที่ตำแหน่งเดียวกัน ดังนั้นมิติต้องเท่ากัน
Student C มีน้ำหนัก 65, สูง 175, เรียน 3 วิชา, คะแนน 95 (สูงกว่า A และ B)
คำถาม:
คำตอบที่คาดหวัง: \([2,4] + [3,5] = [5,9]\) ใช่ เป็นการบวกทีละตำแหน่ง
\(c+d = [5,7,9]\)
คำถาม:
คำตอบที่คาดหวัง: \(x\cdot y = 3(1)+4(2)=11\), \(|x| = \sqrt{3^2+4^2}=5\), dot ให้ scalar
\(|[1,2,3]| = \sqrt{14}\), \(|[4,5,6]| = \sqrt{77}\), dot = 1*4+2*5+3*6 = 32
คำสั่ง: สร้างเวกเตอร์ของตนเอง 2 ตัว เช่น \(a = [4, 2]\), \(b = [1, 6]\)
คำถาม:
คำตอบตัวอย่าง:
เวลา 20-25 นาที
จุดประสงค์ หลังทำกิจกรรมนี้ นักศึกษาควรอธิบายได้ว่า
🎮 เกร็ดความรู้: Unity & C#
Unity เป็นเกมเอนจินยอดนิยม ใช้ภาษา C# ในการเขียนสคริปต์
Vector3 เป็นโครงสร้างข้อมูลสำหรับเวกเตอร์ 3 มิติ (x, y, z) ใช้แทนตำแหน่ง ทิศทาง และความเร็ว
ใน Unity เวกเตอร์ 3 มิติใช้รูปแบบ Vector3(x, y, z)
คำถาม:
คำตอบ: Vector3(1,0,0) = แกน x, (0,1,0) = แกน y, (0,0,1) = แกน z
คำสั่ง:
VectorMoveDemoคำถาม:
transform.position = transform.position + moveDirection; หมายความว่าอะไร?คำตอบ: เคลื่อนที่ทางแกน x 1 หน่วย, บรรทัดนี้หมายถึง ตำแหน่งใหม่ = ตำแหน่งเดิม + เวกเตอร์การเคลื่อนที่
คำสั่ง: เปลี่ยนค่า moveDirection เป็น
new Vector3(0, 1, 0)new Vector3(0, 0, 1)new Vector3(1, 1, 0)คำถาม:
คำตอบ: รอบ 1 ขึ้น (y), รอบ 2 หน้า (z), รอบ 3 แนวทแยงระหว่าง x และ y, คล้ายกับการบวกเวกเตอร์ (1,0,0)+(0,1,0) = (1,1,0)
คำถาม:
Update() ต่างจาก Start() อย่างไร?speed มีหน้าที่อะไร?Time.deltaTime ช่วยเรื่องอะไร?คำตอบ: Start() ทำงานครั้งเดียว, Update() ทำงานทุก frame, speed ควบคุมความเร็ว, Time.deltaTime ทำให้เคลื่อนที่ราบรื่นและสัมพันธ์กับเวลา, ถ้าเพิ่ม speed วัตถุจะเคลื่อนที่เร็วขึ้น
คำสั่ง: แก้โค้ดเพื่อให้ Cube เคลื่อนที่แนวทแยงไปข้างหน้าและขวา ใช้ Vector3 moveDirection = new Vector3(1, 0, 1);
คำถาม:
คำตอบ: เคลื่อนที่ตามแกน x และ z (แนวทแยง), ถ้าต้องการขึ้นด้วย ใช้ (1,1,1) หรือ (1,1,0) ตามต้องการ, กลับทิศทางโดยใช้ค่าลบ เช่น (-1,0,0)
💡 สรุป: การใช้เวกเตอร์ใน Unity ช่วยให้ควบคุมการเคลื่อนที่ของวัตถุได้อย่างยืดหยุ่น คล้ายกับที่เราเรียนรู้ใน GeoGebra และ Python