# IEH 程式隊 2026第一學季 Workshop005 ## 🎓 程式課程規劃(7堂) ### 📅 上課日期 3/7、3/14、3/21、3/28、4/11、4/18、<span style="color:red; font-weight:bold;">4/25</span> ## 線上網頁程式編輯器 https://editor.p5js.org/ ## 網頁程式學習資源 https://p5js.org/tutorials/ ### Texture and Camera 視角切換 ![image](https://hackmd.io/_uploads/S1dm7ww2We.png) ```javascript let xPos = 0, zPos = 0; let cameraMode = 0; // 0 是跟隨,1 是全局 let imgRobot, imgGround; function preload() { // 載入兩張圖片即可 imgRobot = loadImage('https://images.pexels.com/photos/235731/pexels-photo-235731.jpeg?auto=compress&cs=tinysrgb&w=200'); imgGround = loadImage('https://images.pexels.com/photos/413195/pexels-photo-413195.jpeg?auto=compress&cs=tinysrgb&w=500'); } function setup() { createCanvas(windowWidth, windowHeight, WEBGL); debugMode(); angleMode(DEGREES); } function draw() { background(30); // --- 1. 鏡頭切換 (最精簡版) --- if (cameraMode === 0) { camera(xPos, -300, zPos + 500, xPos, 0, zPos, 0, 1, 0); } else { orbitControl(); } // 光源 ambientLight(200); directionalLight(255, 255, 255, 1, 1, -1); // --- 2. 移動控制 --- if (keyIsDown(UP_ARROW)) zPos -= 5; if (keyIsDown(DOWN_ARROW)) zPos += 5; if (keyIsDown(LEFT_ARROW)) xPos -= 5; if (keyIsDown(RIGHT_ARROW)) xPos += 5; // --- 3. 繪製物體 --- // 地板 push(); translate(0, 40, 0); rotateX(90); texture(imgGround); plane(2000, 2000); pop(); // 機器人 push(); translate(xPos, 0, zPos); texture(imgRobot); box(60, 100, 40); pop(); } // --- 4. 按 C 切換 --- function keyPressed() { if (key === 'c' || key === 'C') { cameraMode = (cameraMode + 1) % 2; // 如果切換到全局模式,把鏡頭拉遠一點才看得見全貌 if (cameraMode === 1) { camera(1000, -1000, 1000, 0, 0, 0, 0, 1, 0); } } } ``` ## 專題 ### 💻 專題規範 ***必須使用到3D技術*** ### 💡 發想資源 https://p5js.org/examples/ https://openprocessing.org/discover/#/3D ### 🏅 成果發表評分準則 | 評分項目 | 說明 | 滿分 | |----------------|----------------------------------------------|------| | 💡 創意表現 | 有自己的想法,作品有趣、有特色 | 20 分 | | 🛠️ 技術內容 | 有實作功能,使用 JS 技能,運作順利 | 20 分 | | 🗣️ 表達清楚 | 介紹有邏輯、口齒清楚、說明完整 | 20 分 | | 🎨 視覺設計 | 畫面整齊、顏色字型清楚、有美感 | 20 分 | | ❤️ 報告態度 | 有準備、自信上台、全程參與 | 20 分 | > ✅ **總分:100 分,將頒發:** > - 第一名 🥇 > - 第二名 🥈 > - 第三名 🥉 > - 創意特別獎 💡 ### 報告回報文件夾 | 姓名 | 企劃文件 | |---|---| | 顏嘉宥 | [企劃文件](https://docs.google.com/document/d/1__DRJJMe_ZcdCIfD8D5RJR38qxQJXsTYcxGz1Ydzob8/edit?usp=drive_link) | | 鄧安序 | [企劃文件](https://docs.google.com/document/d/1Hm_daB9_R75IWsRt5WXTGvEiN3HdQ9RtKf3MnoG7xuQ/edit?usp=drive_link) | | 王睿森 | [企劃文件](https://docs.google.com/document/d/18lfKJ_ejMT1Tl5OFuOKmIFUbt1Xd-cZTFr1f1jC-lEw/edit?usp=drive_link) | | 郭芫銘 | [企劃文件](https://docs.google.com/document/d/1vIH7RzAIExP_tAmX6XPXNP_1MPzo90S1Jl9Tl94cCEk/edit?usp=drive_link) | | 張加樂 | [企劃文件](https://docs.google.com/document/d/1A_JL0JQs_SKtjAiNHFsLqicJJ-aEQKkO8T8LVKczo7o/edit?usp=drive_link) | | 黃以勒 | [企劃文件](https://docs.google.com/document/d/1MZ6gBf_0r9NzRx676KKLbbCGAQN5URKWaEjdOlv1x5Y/edit?usp=drive_link) |