การแก้ปัญหาเมื่อมีการป้อนค่าเกินสเกลในตาราง
เมื่อมีการป้อนค่าเกินกว่าสเกลในตาราง ถ้าค่าสเกลตายตัวจะทำให้เกิดปัญหา คือ กราฟที่ได้จะออกนอกกรอบตารางกราฟ การแก้ปัญหานี้ผู้เขียนได้สร้างคลาส Step สำหรับคำนวณอัตราการเพิ่มสเกล เมื่อมีการป้อนค่าเข้าไป โดยมีฟังก์ชั่น
findStep(int num) สำหรับคำนวณหาค่าอัตราการเพิ่มสเกล
Example
int scalePlot = 40; // ระยะห่างระหว่างแต่ละสเกลบนระบบพิกัดจริงบนหน้าจอ เช่น แต่ละสเกลห่างกัน 40 pixel เป็นต้น
int x_value = 100;// กำหนดตัวแปร x ที่ป้อนเข้าไป int scale ; // อัตราการเพิ่มสเกลแต่ละสเกล เช่น แต่ละสเกลเพิ่มขึ้นทีละ 5 ก็จะได้ค่าเป็น 5,10,15,20,....
......................................................................................
จากตัวอย่างที่แล้ว ให้แก้โค้ดในส่วนการ plot กราฟ เป็นดังต่อไปนี้ โดยเพิ่มค่า อัตราส่วนคูณด้วย x,y ทุกๆค่าเข้าไป ให้ทำแบบนี้กับค่าตัวแปรทุกค่า อาจจะเป็น x,y,z ...ก็ได้ แล้วแต่เหตุการณ์
xPoint = x_center+(getRatio*x); yPoint = x_center-(getRatio*y);
/* * ค่าอัตราการเพิ่มสเกล ที่จะพิมพ์ ว่าจะเพิ่มทีละเท่าไหร่ เช่น เพิ่มทีละ 2,5,10,.... * x คืิอ ค่าตัวเลขที่ป้อนเข้าไปเพื่อหาอัตราการเพิ่มสเกล อาจจะเป็นค่าที่มีการป้อนจาก จุด ศก.,ตัวแปร x,y เป็นต้น */
public int getScale(int x) { scale = Step.findStep(x)/2; // คำนวณหาอัตราการเพิ่มสเกล
return scale; }
/* * อัตราส่วนระหว่าง กับอัตราการเพิ่มสเกลแกน x,y * จะต้องนำค่านี้ไปใช้เวลาค่าในกราฟมีการเปลี่ยนเแปลงสเกล เพื่อให้ค่าที่ได้สัมพันธ์กัน * = ระยะห่างระหว่างแต่ละสเกลบนระบบพิกัดจริงบนหน้าจอ/อัตรา scale แต่ละช่อง */
public double getRatio{
return scalePlot*Math.pow(getScale(x_value),-1); }
........................................
เท่านี้ เมื่อมีการป้อนค่าทุกๆค่า ไม่ว่าจะมากน้อยเพียงไร กราฟก็จะคำนวณ และแสดงกราฟได้อย่างถูกต้อง

Create Date : 22 สิงหาคม 2550 |
|
9 comments |
Last Update : 24 สิงหาคม 2550 16:19:27 น. |
Counter : 3373 Pageviews. |
|
 |
|