อาจารย์สั่งการบ้านมาให้สร้างรูปวงกลมอ่ะครับ...เพียงแต่ว่าวงกลมธรรมดาอ่ะทำได้แล้ว...แต่ผมต้องทำวงกลมที่เป็นรูปก้นหอยแบบนี้อ่ะครับ นั่งลองผิดลองถูกเป็นชั่วโมงยังไงก็ไม่ได้อ่ะครับ...ปวดหัวจะแย่แล้ว ทำได้แต่รูปนี้อ่ะ ใช้ CODE ตามข้างล่างนี้อ่ะครับ ใครรู้วิธีทำช่วยบอกหน่อยนะครับ... ป.ล. ผมใช้ Visual Studio 2005 นะ
เขียนไม่เป็นเหมือนกัน แต่ ให้ลอง search คำว่า spiral equation ใน google แล้วลอง implement สมการที่ใช้สร้าง วงกลมก้นหอย ดูนะครับ มีหลายสมการเลย ตัวอย่าง <!-- m -->http://www.mathematische-basteleien.de/ ... 0equations<!-- m --> <!-- m -->http://www.2dcurves.com/spiral/spirallo.html<!-- m --> ส่วนวิชามาร ก็ลอง search แบบที่เป็น lib code เลยก็ได้ครับ ไม่ก็ ลองเพิ่มคำว่า MATLAB ต่อท้ายไป น่าจะเจอ code แบบที่แตกออกเป็น Agorithm แล้วครับ ไม่แนะนำให้ search ด้วย keyword c++ โดยตรง ยกเว้นกรณีจำเป็น โชคดีนะ
ตอนแรกนึกว่าจะต้องอธิบายเรื่องสมการวงกลมซะอีก ที่ไหนได้ เข้ามาอ่านดู คุณ Kuna ก็เข้าใจอยู่แล้วนี่นา ก่อนอื่นเรามาดู code ของรูปล่างกันก่อน for(r=20;r<=160;r=r+20) {for(float i = 0 ;i<2*((22.0)/7);i=i+0.01) { x = xc + r * cos(i); y = yc + r * sin(i); drawDot(x,y); } } จะเห็นว่ามี loop อยู่ 2 ชั้น คือค่อยๆ เพิ่ม i จนครบวงก่อน จากนั้นค่อยเพิ่ม r จึงทำให้เกิดวงกลมที่เป็นชั้นๆ ไม่ต่อเนื่อง เพราะต้องเพิ่ม i จนครบ ค่อยเพิ่ม r ถ้าอยากจะได้ลายก้นหอย เราจะต้อง เพิ่ม i และ r ไปพร้อมกัน code ใหม่ก็จะเป็นแบบนี้ float i; for(i = 0,r=20;r<=320;i=i+0.04,r=r+1) { x = xc + r * cos(i); y = yc + r * sin(i); drawDot(x,y); } >>สำหรับ for นั้น โครงสร้างคำสั่งจะเป็น for(<initialize>;<condition>;<increment>) โดยเราสามารถมี initialize กับ step หลายคำสั่งได้ >>ด้วยการใช้สัญลักษณ์ , เช่น for(<initialize1>,<initialize2>;<condition>;<increment1>,<increment2>) แต่ถ้า >>compiler มันเรื่องมาก ลองใช้ while แทนละกันครับ ถ้าได้ลายก้นหอยไม่สวย อาจต้องปรับตรง increment ของ i กับ r ดูครับ ลองดูนะครับ
สู้เข้าครับ ท่าทางจะเรียน computer graphic 1 อยู่ ปล. ผมเรียนสาย Software Engineering เลยไม่ได้เรียน CG1 ตอบไม่ได้เหมือนกัน ^^!
โอ้ว...ขอบคุณมากเลยครับ...ทำได้แล้ว TwT ตอนแรกผมก็นึกออกแหละครับว่าต้องเพิ่ม i กับ r ไปพร้อมๆ กัน แต่มันนึกไม่ออกว่าต้องแก้ CODE ยังไงน่ะครับ แหะๆๆ
บอกตามตรงเห็นรูปแรกแล้วนึกถึง -ก้นหอยมรณะ- (เป็นการ์ตูนแนวHorrorที่ชวนอ้วกที่สุด) นอกนั้นผมไม่รู้ ครับ - - /me มาเพื่อบอกแล้วจากไป
อา กระทู้ดีมีสาระ.... Dark of Dissidia มันไม่ใช่โปรแกรมอนิเมชั่นนะคร้าบ มันคือภาษาเขียนโปรแกรมที่ถือได้ว่าที่เป็นต้นแบบของภาษาเขียนโปรแกรมสมัยใหม่หลาย ๆ ภาษาคือ C++ โดย C++ มีรากฐานมาจากภาษา C ซึ่งเป็น Modular แล้วนำมาพัฒนาต่อให้กลายเป็น OOP : )
เคยเรียนมาตอนปีหนึ่งเหมือนกัน แต่เจอแค่ทำตัว + ให้เรียงเป็นข้าวหลามตัดก็ตายแล้วครับ โง่เรื่องเทคโนโลยีมาก = =''
โฮๆ ....... สุดยอดจริงๆ ผมยังไม่เคยทำแบบนี้เลย ทำแต่ดาว แค่ทำให้ดาวออกมาเป็น Pentagram ก็คำนวนไม่ถูกแล้ว อิอิถ้าใครช่วยผมได้อีกคนก็ดีครับ ตอนนี้ออกเป็นดาวน่าเกลียดมาก
งานนี้ยากกว่า การปริ้น char ออกไปเป็นรูปทรงที่ไม่ซับซ้อนครับ ( อันนั้นผมก็ทำตอน ปี1 , ทำสี่เหลี่ยมจัตุรัส ตรงกลางโบ๋ , แจกโจทย์สอบให้เขียนสดภายใน 2 ชั่วโมง(ผมใช้ 1 ชั่วโมง) ) นี่เห็นโค้ดใช้ openGL แล้วเขียนทีล่ะจุด pixel แบบนี้ , เป็นวิชา CG ชัวร์ ^^! เพื่อนผมเรียนจบเทอม 1 ไปแล้ว, ในวิชา CG1 สุดท้ายก็ต้องทำภาพ 3D ง่ายๆได้แล้วล่ะ หมุนพลิกแกนโชว์ไปมา หุๆๆ( วิชา CG นี่ใช้วิชา Linear Algebra ใครอยากไปทาง CG ตั้งใจเรียน Linear น่ะครับ ) ปล. ที่ ม. ของผมเรียน CG กันตอน ปี 3 เทอม 1 ครับ( เฉพาะคนเรียนสาย Computer science )