การเขียนกราฟโดยใช้จุด
การเขียนกราฟโดยทั่วไปจะมีแกน x,y และมีค่า ลบ บวก และจุด 0,0 จะอยู่ตรงกลางกราฟที่จุดตัด x,y
แต่ในระบบพิกัดจุดในหน้าจอคอมพิวเตอร์จะไม่มีค่าที่เป็นลบ มีแต่บวกเท่านั้น ซึ่งจุด 0,0 จะอยู่ที่มุมบนซ้าย เลื่อนไปขวาเป็นบวก เลื่อนลงล่างก็เป็นบวก
ซึ่งการเขียนโปรแกรมเพื่อจำลองพิกัดจุดกราฟเราต้องทำการแปลงค่าเหล่านั้น
ตัวอย่างต่อไปนี้ ผู้เขียนได้แก้ปัญหาและใช้ตัวอย่างภาษา java ในการวาดจุดแต่ละจุดเพื่อให้จุดเหล่านั้นกลายเป็นกราฟตามต้องการ ซึ่งเป็นการแก้ปัญหาเบื้องต้น
และสามารถนำไปประยุกต์ใช้ในการเขียนกราฟตามสมการทางคณิตศาตร์ได้
Example
ตัวอย่างต่อไปนี้ จะการ plot กราฟโดยใช้หลักการ plot จุดแต่ละจุดจนกลายเป็นกราฟ โดยจะยกตัวอย่างโค้ดภาษา Java บางส่วนเท่านั้น
.............................................
/* พิกัดจุดศูนย์กลาง x,y บนหน้าจอ ไม่ใช่จุด ศก จำลองบนกราฟ จุด ศก บนกราฟจะเป็น 0,0 ซึ่งเรากำหนดพิกัดจุด 0,0 นี้ที่พิกัด 200,200 ซึ่งในความเป็นจริงเราอาจจะกำหนดที่พิกัดไหนบนหน้าจอก็ได้ */
double x_center = 200; double y_center = 200;
............................................. // วาดจุด 1 จุด public void writePixel(Graphics g, double x, double y){ g.drawOval((int) x, (int) y, (int) 0.01,(int) 0.01); } // สมการ public double f(double x) { double y = x; return y; } // การ plot กราฟโดยใช้หลักการ plot จุดแต่ละจุดจนกลายเป็นกราฟ public void drawGraph(Graphics g){
double x=0.0; // ตัวแปรผกผันที่มีการเพิ่มขึ้นเรื่อยๆ double y=0.0; // ค่า y ที่ได้จากสมการ double xPoint = 0; // พิกัดจุด x บนหน้าจอที่จะ plot double yPoint = 0;// พิกัดจุด y บนหน้าจอที่จะ plot
/****** วนลูป plot จุดแต่ละจุดตามสมการ y = f(x) ********/
while (x<200){ // เส้นแรก x เป็นบวก y=f(x);
/* เนื่องจากพิกัดจุดจริงบนหน้าจอกับค่าที่ได้จากสมการไม่เหมือนกัน ดังนั้นจึงต้องทำการแปลงค่าที่ได้ให้สัมพันธ์กันก่อน โดย xPoint=x_center+x , คือ พิกัดจุด X จริงบนหน้าจอจะเท่ากับ ค่าจุด ศก. บวกด้วยตัวแปร x ผกผัน เพราะจุด ศก.(0,0)จากกราฟ จะไม่ใช่จุดเดียวกับจุด 0,0 บนพิกัดหน้าจอ ดังนั้นเมื่อตัวแปร x เพิ่ม(+)พิกัดจุด X ก็จะเป็นบวกตาม yPoint=y_center-y, มีหลักการเช่นเดียวกับ พิกัดจุด X แต่ว่า พิกัดจุด Y บนหน้าจอจะตรงข้ามกับระบบพิกัดจุดบนกราฟจำลอง คือ พิกัดจุด Y บนหน้าจอ -> ขึ้น เป็นลบ ,ลง เป็นบวก แต่เนื่องจากค่า y ที่ได้จากสมการเป็นบวก ดังนั้น พิกัดจุด Y บนหน้าจอจึงต้องลดค่าลง คือ ลดลงเรื่อยๆ */
xPoint = x_center+x; yPoint = y_center-y; writePixel(g,xPoint,yPoint); // plot จุด
// เส้นที่สอง x เป็นลบ y = f(-x);
/* เนื่องจากเส้นกราฟค่าตัวแปรผกผัน x มีทั้งค่าที่เป็นบวกและลบ ดังนั้น xPoint=x_center-x, ก็คือ เมื่อค่าตัวแปรผกผัน x เป็นลบ พิกัดจุด X บนหน้าจอต้องมีค่าลดลงด้วย เืพื่อให้การ plot จุดกราฟจะได้พิกัดที่ถูกต้องบนกราฟ
ส่วนค่าพิกัดจุด Y บนหน้าจอจะตรงข้ามกับระบบพิกัดจุดบนกราฟจำลอง ดังที่ได้อธิบายมาแล้ว ดังนั้น ถ้าต้องการพิกัดจุด Y บนหน้าจอที่เป็นจริง ต้องทำการลบค่า y ออก เพราะการใส่ค่าลบจะรองรับทุกๆผลลัพธ์จากสมการ ไม่ว่าจะเป็นบวกหรือลบ */
xPoint = x_center-x; yPoint = y_center-y; writePixel(g,xPoint,yPoint);// plot จุด x+=0.1; // เพิ่ม ค่า x ขึ้นเรื่อยๆ
}// end loop }
Create Date : 19 สิงหาคม 2550 |
|
4 comments |
Last Update : 23 สิงหาคม 2550 10:52:26 น. |
Counter : 2104 Pageviews. |
|
|
|