โครงงานพัฒนาเครื่องมือ 5

6
โครงงานพัฒนาเครืองมือ(Tools Development) เป็น โครงงานเพือพัฒนาเรืองมือมาใช้ช่วยสร้างงานประยุกต์ต่าง ๆ ซึ งโดยส่วนใหญ่จะเป็นในรูป ซอฟต์แวร์ ตัวอย่างของเครืองมือช่วยงาน เช่น ซอฟต์แวร์วาดรูป ซอฟต์แวร์พิมพ์งาน ซอฟต์แวร์ช่วยการ มองวัตถุในมุมต่าง ๆ เป็นต้น สําหรับซอฟต์แวร์เพือการพิมพ์งานนั -นสร้างขึ -นเป็นโปรแกรมประมวลผล ภาษา ซึ งจะเป็นเครืองมือให้เราใช้งานในงานพิมพ์ต่าง ๆ บนเครืองคอมพิวเตอร์เป็นไปได้โดยง่าย ซึ งรูปที ได้สามารถนําไปใช้งานต่าง ๆ ได้มากมาย สําหรับซอฟต์แวร์ช่วยในการมองวัตถุในมุมต่าง ๆ ใช้สําหรับช่วย ในการออกแบบสิ งของต่าง ๆ ตัวอย่างเช่น 1. โปรแกรมการค้นหาคําภาษาไทย 2. โปรแกรมอ่านอักษรไทย 3. โปรแกรมวาดภาพสามมิติ 4. โปรแกรมบีบอัดข้อมูล 5. โปรแกรมประมวลผลคําไทยบนระบบปฏิบัติการลีนุกซ์

Upload: aungkana-na-na

Post on 29-May-2015

4.006 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: โครงงานพัฒนาเครื่องมือ 5

โครงงานพฒนาเคร�องมอ(Tools Development)

เปน โครงงานเพ อพฒนาเร องมอมาใชชวยสรางงานประยกตตาง ๆ ซ งโดยสวนใหญจะเปนในรปซอฟตแวร ตวอยางของเคร องมอชวยงาน เชน ซอฟตแวรวาดรป ซอฟตแวรพมพงาน ซอฟตแวรชวยการมองวตถในมมตาง ๆ เปนตน สาหรบซอฟตแวรเพ อการพมพงานน-นสรางข-นเปนโปรแกรมประมวลผลภาษา ซ งจะเปนเคร องมอใหเราใชงานในงานพมพตาง ๆ บนเคร องคอมพวเตอรเปนไปไดโดยงาย ซ งรปท ไดสามารถนาไปใชงานตาง ๆ ไดมากมาย สาหรบซอฟตแวรชวยในการมองวตถในมมตาง ๆ ใชสาหรบชวยในการออกแบบส งของตาง ๆ ตวอยางเชน

1. โปรแกรมการคนหาคาภาษาไทย 2. โปรแกรมอานอกษรไทย 3. โปรแกรมวาดภาพสามมต 4. โปรแกรมบบอดขอมล 5. โปรแกรมประมวลผลคาไทยบนระบบปฏบตการลนกซ

Page 2: โครงงานพัฒนาเครื่องมือ 5

โปรแกรมสรางโมเดลสามมตจากการวาดอยางงาย (CPS’ketchuu)

บทคดยอ โครงการน- มจดประสงคเพ อสรางโปรแกรมสรางโมเดลสามมตท มสวนอนเตอรเฟสต-งอยบนพ-นฐานของการวาด ซ งถกพฒนาข-นมาเพ อลดความยงยากในสรางโมเดลสามมตดวยอนเตอรเฟสแบบดบบลวไอเอมพซ งเปนวธแบบด-งเดม เน องจากผใชงานสวนมากจะคนเคยกบวธการวาดภาพซ งเปนพ-นฐานของการทางานทางดานศลปะอยแลว ผใชโปรแกรมจะวาดเสนแบบ 2 มตดวยอปกรณประเภท mouse หรอ Graphic Tablet จากน-นโปรแกรมจะสรางโมเดลสามมตข-นตามเสน ซ งวธการสรางโมเดลสามมตจะสามารถแบงออกเปน 2แบบตามลกษณะของโมเดลท จะเกดข-น คอ 1.สรางโมเดลแบบฟรฟอรมท ตวโมเดลท เกดข-นจะมความหนาหรอบางของแตละสวนแตงตางกนไป โดยจะคานวณจากความกวางและแคบของพ-นท โดยพ-นท ท กวางจะทาใหโมเดลสวนน-นหนา และ พ-นท ท แคบจะทาใหโมเดลตรงสวนน-นบาง และ 2. สรางโมเดลแบบโซลดท ตวโมเดลสามมตจะมความโคงมนของตวโมเดลนอยและมความเหมาะสมกบงานทางดานสถาปตยกรรมหรอวศวกรรมมากกวาโมเดลแบบฟรฟอรม โครงการน- ถกพฒนาข-นมาดวยภาษาจาวาเพ อใหสามารถทางานไดบนหลายระบบปฎบตการและใหสามารถทา งานไดแบบทนทวงน- (Real-time)บนคอมพวเตอรสวนบคคลท วไป

Abstract This project is to provide a sketching interface 3D modeling program which reduce the difficulty in tradition WIMP 3D modeling style. The user draws several 2D strokes interactively on the screen using whether mouse or graphic tablet and the system will generate a 3D model according to the silhouette drawn by user. The model generating style can be categorized in 2 type: freeform modeling and solid modeling . The freeform modeling will generate model based on the wideness of each region of silhouette making wide areas fat, and narrow area thin. The solid modeling will generate the non smooth model which is more suitable for the engineering and architect work. This project is implemented by Java language in order to, and mes construction is done in real time on standard PC.

ท มาและความสาคญของปญหา การสรางโมเดลสามมตในปจจบนไดเขามามบทบาทเปนอยางมากตอการทางานในดานตางๆ เชน การ ออกแบบผลตภณฑหรอสนคา การออกแบบอาคาร การผลตภาพยนตรหรอการตนแอนเมชน ทาใหโปรแกรมและวธการสรางโมเดลสามมตไดรบการพฒนาไปอยางมาก แมกระน-นงานในดานน-กลบเปนงานท ยากและตองอาศยเวลา เน องจากความสลบซบซอนของ อนเตอรเฟสของโปรแกรมสรางโมเดลจาลองแบบสามมตในปจจบนท เปนแบบดบบลวไอเอมพ [8] (WIMP: Window, Icon, Menu, Pointer) ซ งผใชจะตองทางานผานคาส งท ยงยากจานวนมากเพ อใหไดโมเดลสามมตตามท ตองการ และถงแมวาอนเตอรเฟสแบบน-

Page 3: โครงงานพัฒนาเครื่องมือ 5

จะรองรบการทางานสรางโมเดลทกรปแบบแตผใชท มประสบการณนอยจา เปนตองใชเวลาและความพยายามสง แมแตในการสรางโมเดลสามมตท มรายละเอยดไมมากนกข-นมาช-นหน ง

จากการสรางโมเดลในปจจบนท ยาก ทาใหมการคดคนการข-นโมเดลสามมตจากการสเกตชข-นซ งทาได งายเน องจากมนษยถนดกบการใชมอวาดเขยน ทาใหสามารถสรางโมเดลสามมตไดเรวข-น การสเกตชคอภาษาหน งท ใชในการส อสาร ใชในการจดบนทกหรอออกแบบส งท วาดไวในจนตนาการของมนษย ปจจบนไดมการสรางโปรแกรมสรางโมเดลสามมตท ทา ตามแนวคดการสเกตชหรอโปรแกรมแบบแบบ เอสไอบเอม(Sketch-based interface for modeling หรอ SBIM) เชน Google Sketchup ท มลกษณะการสราง แบบโซลด (SOLID) ซ งสามารถใชไดโดยการรางภาพท เปนรปหนาตดของโมเดลสามมตท ตองการและจงยดหนาตดออกมาเปนโมเดลสามมต แตมขอเสย คอโปรแกรมไมสามารถสรางโมเดลสามมตท เปนลกษณะโคงนนไดหรอทาไดยาก และโปรแกรมไมสนบสนนการทาโมเดล 3 มตแบบฟรฟอรม(Freeform) Teddy [1] เปนโปรแกรมสรางโมเดล 3 มต แบบเอสบไอเอมท มลกษณะสนบสนนการสรางโมเดลแบบฟรฟอรมซ งสามารถสรางโมเดลท มลกษณะเปนทรงสมมาตรไดงาย ตางจากงานแบบโซลดท จาเปนตองสรางโมเดลจากเสนตายตว (fixed line) และรปรางท กาหนด (Fixed Shape)ทาใหเกดปญหาการสรางโมเดลท ตองการเหล ยมมมหรอตองการขนาดท สามารถวดไดทาให Teddy ไมเหมาะ สาหรบงานท ตองการอตราสวนท ถกตองหรอขนาดท ชดเจน

จากขอจากดของโปรแกรมดงท กลาวมา โครงงาน CPS’ketchuu จงไดถกออกแบบมาเพ อใหเปน โปรแกรมแบบ เอสบไอเอมท เพ มความยดหยนในการทา งานมากข-นและรวมขอดของท-งสองโปรแกรมท ไดกลาวขางตนเขาไวดวยกน คอ โปรแกรมสามารถทางานไดท-งการสรางโมเดล 3 มตแบบฟรฟอรมท สามารถปรบความระดบความนนและโคงงอไดและสรางโมเดล 3 มตแบบโซลดได CPS’ketchuu จงเปนโปรแกรมสรางโมเดลสามมตท มสวนอนเตอรเฟสต-งอยบนพ-นฐานของการวาดแบบเอสบไอเอม ซ งถกพฒนาข-นมาเพ อลดความยงยากในสรางโมเดลสามมตดวยอนเตอรเฟสแบบดบบลวไอเอมพ ซ งเปนวธแบบด-งเดม เน องจากผใชงานสวนมากจะคนเคยกบวธการวาดภาพซ งเปนพ-นฐานของการทางานทางดานศลปะอยแลว โดยการสเกตชท ใชในโปรแกรมน-จะเนนไปทางดานการสเกตชภาพท ออกแบบในความคดเพ อนามาสรางเปนโมเดลสามมตใชงานตอไป ในการทางานในโหมดฟรฟอรม ผใชโปรแกรมจะวาดเสนแบบ 2 มตดวยอปกรณประเภท mouse หรอ Graphic Tablet จากน-นโปรแกรมจะสราง 3D polygon surface ข-นตามเสน ซ งความหนาหรอบางของตวโมเดล จะคานวณจากความกวางและแคบของพ-นท โดยพ-นท ท กวางจะทาใหโมเดลสวนน-นหนา และ พ-นท ท แคบจะทาใหโมเดล ตรงสวนน-นบาง นอกจากน-ผใชงานยงสามารถเลอกโหมดโซลด เพ อสนบสนนการสรางโมเดลแบบโซลด ตวโปรแกรมถกสรางดวยภาษาจาวา (JAVA) ใหเปนโปรแกรมแบบ open source และสามารถสรางโมเดล ไดแบบ real-time บนเคร องพซ(PC) แบบมาตรฐาน

Page 4: โครงงานพัฒนาเครื่องมือ 5

วตถประสงค เพ อสรางโปรแกรมสรางโมเดลสามมตท มอนเตอรเฟสแบบเอสบไอเอม(SBIM)

รายละเอยดการพฒนา เน-อเร องตวอยางการใชงานโปรแกรม 1) นายสรางสรรค เปนโปรแกรมเมอรตองการพฒนาเกมเกมหน ง โดยตองการใหมตวละครท เปน 3 มตแตวา นายสรางสรรคไมมความรในการสรางโมเดล 3 มตเลย นายสรางสรรคจงไดใชCPS’ketchuu และไดพบวาเขาสามารถสรางตวละครในเกมไดอยางท ตองการ ไดงายและรวดเรว 2) นายพชยต เปนนกวาดการตน กาลงตองการจะทา ใหการตนตวเองเปนการตน แอนเมชนแบบ 3 มตจงไดลองใช CPS’ketchuu พบวาสามารถใชวธวาดการตนในแบบท ตนเองถนดในการสรางโมเดล3มตของตวละครในการตน ได ทาใหงานออกมาไดตามท ตองการและออกมาเหมอนตวละครท ใชตอนเปนการตน 2 มต 3) นางสาวณฐพร เปนสถาปนกออกแบบภายใน ตองการสรางงาน 3 มตเพ อเสนอลกคา โดยภายในแบบท ตองการสรางโมเดล 3 มตน-นมวตถท มลกษณะโคงมนเยอะมากมาย ซ งโปรแกรมSketch Up เพ อสรางโมเดล 3 มตท วไปความสามารถในการสรางโมเดลท โคงมนน-นนอย นางสาวณฐพร จงไดลองใช CPS’ketchuu พบวาสามารถสรางโมเดล 3 มตท โคงมนไดด 4) นายตาวน เปนผใชคอมพวเตอรท วไป ตองการท จะสรางโมเดล 3 มตจากภาพถาย ซ งนายตาวนไดใชโปรแกรมทาใหภาพถายน-นกลายเปนภาพแบบภาพวาด แลวจงนา มาเขามาใชในโปรแกรม CPS’ketchuu ซ งพบวาสามารถลากเสนตามภาพท นามาใช แลวสรางเปนโมเดลไดโดยงาย 5) นายธนท เปนนกพฒนาโปรแกรมในบรษทสรางงาน แอนเมชน 3 มต ไดนา CPS’ketchuuไปใชพบวาการทางานข-นโมเดลตางๆ ท เปนสวนยอย รายละเอยดไมเยอะนกสรางไดโดยงายทาใหไมตองเสยเวลาในสวนน-มาก และเน องจาก CPS’ketchuu เปน Open Source จงสามารถนามาปรบปรง ปรบเปล ยนใหเหมาะกบงานตางๆเพ มข-นได

งานวจยและทฤษฎท เก ยวของ 1. คาศพทและความหมาย - สเกตช (Sketch ) หมายถง การสรางภาพโดยการวาดดวยมอเปลาโดยโดยไมใสรายละเอยดจนสมบรณแบบ กลาวไดวาเปนการวาดเพยงเพ อใหเหนแนวคดของภาพเทาน-น - SBIM ( Sketch-based interface for modeling ) หมายถง อนเตอรเฟสในการสรางโมเดล 3 มต ท มพ-นฐานจากการวาดแบบสเกตช ผใชงานจะใชวธการวาดเสนแบบ 2 มตลงไปเพ อใหโปรแกรมสรางโมเดล 3 มตให - WIMP ( Window, Icon, Menu ,Pointer) หมายถง อนเตอรเฟสท ผใชงานจะตองทา งานผานหนาตางไอคอน เมน และตวช- เพ อใหบรรลวตถประสงคของการทางาน - โมเดลแบบโซลด(Solid Model) หมายถง โมเดลสามมตท ใชในงานทางดานวศวกรรมหรองานทางดานสถาปตยกรรม

Page 5: โครงงานพัฒนาเครื่องมือ 5

- โมเดลแบบฟรฟอรม (Freeform Model ) หมายถง โมเดลสามมตแบบท ไมมรปรางท ตายตวแนนอน หรอ ไมใชรปรางทางเรขาคณต

วธการสรางโมเดล 3 มต แบบฟรฟอรม 1) รบขอมลจาก เมาส หรอ Graphic Tablet เปนเสนสเกตชแบบฟรฟอรม เขามาเปนจดท ลากเช อมตอกนโดยการสเกตช จากน-นจงนา จดท ไดไปลดปรมาณลงโดยใชอลกอรทมตามงานวจย [10] 2) เช อมรอยตอใหเปนรปโพลกอนแบนเรยบแบบปด โดยใชการลากเสนจากจดเร มตนเขาไปหาจดทายสด 3) สราง Delaunay triangulation โดยใชวธการเช อมจดใน space 4) หาแกนคอดล (Chordal Axis) ของ Polygon ทกอนในรปปดตามงานวจย [9] โดยการลากเสน เช อมจดก งกลางของสามเหล ยม Delaunay ทกอนในรปปด เพ อใหสามารถแบงสามเหล ยมออกเปน 3 แบบ คอสามเหล ยมแบบ เทอรมนล (terminal )สามเหล ยมแบบสลฟ (sleeve) และสามเหล ยมแบบจงกช น (junction) 5) ขลบบางสวนออกใหไดสามเหล ยมรปพด( Fan triangle) โดยใชวธตามงานวจย [9] โดยใช อลกอรทมแบบพรนน ง (pruning)โดยสรางวงกลมข-นมาจากเสนขอบภายใน (internal edge) ของ สามเหล ยมแบบเทอรมนล จากน-นจงรวมสามเหล ยมน- เขากบสาสมเหล ยมภายในอนถดไป และสราง วงกลมซา ไปเร อยๆจนกวาจะมจดของสามเหล ยมท อยนอกวงกลม และจงสรางสามเหล ยมแบบพด จากจดก งกลางของขอบภายในท อยนอกสด 6) สรางแกนเช อมระหวางจดก งกลางของสามเหล ยมรปพด เพ อเตรยม Polygon ใหพรอมสาหรบการยกแกนใหสงข-น 7) แบงสามเหล ยมเพ ม โดยใชแกนท สรางข-นมาใหม 8) ยกเสนแกนข-นมาเปนความสงโดยคานวณคาเฉล ยจากระยะหางของจดก งกลางสามเหล ยมรปพดถง ขอบภายนอก (External Edge) ดานท ตดกบจดก งกลางดงกลาว 9) เปล ยนเสนท เช อมกบแกนท ยกข-นใหเปนโคงแบบไขเพ อสราง Polygon แบบโคง 10) สรางเสนเช อมโครงขายใหกลายเปน Polygonal Mesh 11) คดลอกโครงสรางไปอกดานแลวทาเปน Mesh Polygon ท เปนรปปดและสมมาตร สดทายลดเสนและสามเหล ยมท ไมจา เปนท-ง จะไดผลลพธเปนโมเดล 3 มตข-นมาจากการวาด

ขอสรปและขอเสนอแนะ จากการใชงานโปรแกรม พบวาโปรแกรมชวยอา นวยความสะดวกในการข-นโมเดลเบ-องตน โดยจะสามารถใชสรางโมเดลท-งแบบแคดและแบบฟรฟอรมไดดวยการวาดเพยงคร- งเดยว ในงานท ไมตองการความรายละเอยดถกตอง การใชโปรแกรม CP’Sketchuu จะสะดวกกวาการใชโปรแกรมแบบ WIMP ท วไป ขอ เสยเปรยบของโปรแกรมน- คอ ทาไดเพยงการข-นรปเพยงคร- งเดยวไมสามารถเพ มเตม ตอ ยด ตด โมเดลได ทาใหการดดแปลงโมเดลทา ไมไดตองไปดดแปลงตอในโปรแกรมอ นแทน และรายละเอยดของโมเดลอาจ

Page 6: โครงงานพัฒนาเครื่องมือ 5

มความผดพลาดไมถกตองไดเน องดวยโปรแกรมถกพฒนาดวยภาษาจาวา จงสามารถนาไปใชงานไดในหลาย Platform เม อมการลง Java Virtual Machine ซ งในท น- จงสามารถนา มาใชงานบน Linux ได ขอบคณขอมลจาก http://www.hinsorn.ac.th/web/?p=41