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

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

Upload: joyce-zii-zii

Post on 12-Jun-2015

511 views

Category:

Documents


2 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,

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

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) ซ�งผ ใชจะตองทางานผานคาส�งท�ยงยากจานวนมากเพ�อใหไดโมเดลสามมตตามท�ตองการ และถงแมวาอนเตอรเฟสแบบน ,จะรองรบการทางานสรางโมเดลทกรปแบบแตผ ใชท�มประสบการณนอยจา เปนตองใชเวลาและความพยายามสง แมแตในการสรางโมเดลสามมตท�มรายละเอยดไมมากนกข ,นมาช ,นหน�ง

จากการสรางโมเดลในปจจบนท�ยาก ทาใหมการคดคนการข ,นโมเดลสามมตจากการสเกตชข ,นซ�งทาได

งายเน�องจากมนษยถนดกบการใชมอวาดเขยน ทาใหสามารถสรางโมเดลสามมตไดเรวข ,น การสเกตชคอภาษาหน�งท�ใชในการส�อสาร ใชในการจดบนทกหรอออกแบบส�งท�วาดไวในจนตนาการของมนษย

ปจจบนไดมการสรางโปรแกรมสรางโมเดลสามมตท�ทา ตามแนวคดการสเกตชหรอโปรแกรมแบบแบบ

เอสไอบเอม(Sketch-based interface for modeling หรอ SBIM)

เชน Google Sketchup ท�มลกษณะการสราง

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

แบบโซลด (SOLID) ซ�งสามารถใชไดโดยการรางภาพท�เปนรปหนาตดของโมเดลสามมตท�ตองการและจงยดหนาตดออกมาเปนโมเดลสามมต แตมขอเสย คอโปรแกรมไมสามารถสรางโมเดลสามมตท�เปนลกษณะโคงนนไดหรอทาไดยาก และ

โปรแกรมไมสนบสนนการทาโมเดล 3 มตแบบฟรฟอรม(Freeform) Teddy

[1] เปนโปรแกรมสรางโมเดล 3 มต แบบเอสบไอเอมท�มลกษณะสนบสนนการสรางโมเดลแบบฟรฟอรมซ�งสามารถสรางโมเดลท�มลกษณะเปนทรงสมมาตรไดงาย ตาง

จากงานแบบโซลดท�จาเปนตองสรางโมเดลจากเสนตายตว (fixed line) และ

รปรางท�กาหนด (Fixed Shape)ทาใหเกดปญหาการสรางโมเดลท�ตองการ

เหล�ยมมมหรอตองการขนาดท�สามารถวดไดทาให Teddy ไมเหมาะ สาหรบงานท�ตองการอตราสวนท�ถกตองหรอขนาดท�ชดเจน

จากขอจากดของโปรแกรมดงท�กลาวมา โครงงาน CPS’ketchuu จงไดถกออกแบบมาเพ�อใหเปน

โปรแกรมแบบ เอสบไอเอมท�เพ�มความยดหยนในการทา งานมากข ,นและรวมขอดของท ,งสองโปรแกรมท�ไดกลาวขางตนเขาไวดวยกน คอ โปรแกรมสามารถทางานได

ท ,งการสรางโมเดล 3 มตแบบฟรฟอรมท�สามารถปรบความระดบความนนและโคงงอ

ไดและสรางโมเดล 3 มตแบบโซลดได CPS’ketchuu จงเปนโปรแกรมสรางโมเดลสามมตท�มสวนอนเตอรเฟสต ,งอยบนพ ,นฐานของการวาดแบบเอสบไอเอม ซ�งถกพฒนาข ,นมาเพ�อลดความยงยากในสรางโมเดลสามมตดวยอนเตอรเฟสแบบดบบลวไอเอมพ ซ�งเปนวธแบบด ,งเดม เน�องจากผใชงานสวนมากจะคนเคยกบวธการวาดภาพซ�งเปนพ ,นฐานของการทางานทางดานศลปะอยแลว โดยการสเกตชท�ใชในโปรแกรมน ,จะเนนไปทางดานการสเกตชภาพท�ออกแบบในความคดเพ�อนามาสรางเปนโมเดลสามมตใชงานตอไป ในการทางานในโหมดฟรฟอรม ผใชโปรแกรมจะวาด

เสนแบบ 2 มตดวยอปกรณประเภท mouse หรอ Graphic Tablet จากน ,น

โปรแกรมจะสราง 3D polygon surface ข ,นตามเสน ซ�งความหนาหรอบาง

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

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

โปรแกรมถกสรางดวยภาษาจาวา (JAVA) ใหเปนโปรแกรมแบบ open

source และสามารถสรางโมเดล ไดแบบ real-time บนเคร�องพซ(PC) แบบมาตรฐาน

วตถประสงค

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

รายละเอยดการพฒนา

เน ,อเร�องตวอยางการใชงานโปรแกรม

1) นายสรางสรรค เปนโปรแกรมเมอรตองการพฒนาเกมเกมหน�ง โดยตองการใหม

ตวละครท�เปน 3 มตแตวา นายสรางสรรคไมมความรในการสรางโมเดล 3 มตเลย

นายสรางสรรคจงไดใชCPS’ketchuu และไดพบวาเขาสามารถสรางตวละครในเกมไดอยางท�ตองการ ไดงายและรวดเรว

2) นายพชยต เปนนกวาดการตน กาลงตองการจะทา ใหการตนตวเองเปนการตน

แอนเมชนแบบ 3 มตจงไดลองใช CPS’ketchuu พบวาสามารถใชวธวาด

การตนในแบบท�ตนเองถนดในการสรางโมเดล3มตของตวละครในการตน ได ทาให

งานออกมาไดตามท�ตองการและออกมาเหมอนตวละครท�ใชตอนเปนการตน 2 มต

3) นางสาวณฐพร เปนสถาปนกออกแบบภายใน ตองการสรางงาน 3 มตเพ�อเสนอ

ลกคา โดยภายในแบบท�ตองการสรางโมเดล 3 มตน ,นมวตถท�มลกษณะโคงมนเยอะ

มากมาย ซ�งโปรแกรมSketch Up เพ�อสรางโมเดล 3 มตท�วไปความสามารถใน

การสรางโมเดลท�โคงมนน ,นนอย นางสาวณฐพร จงไดลองใช CPS’ketchuu

พบวาสามารถสรางโมเดล 3 มตท�โคงมนไดด

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

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) หมายถง โมเดลสามมตท�ใชในงานทางดานวศวกรรมหรองานทางดานสถาปตยกรรม

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

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

วธการสรางโมเดล 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

ใหพรอมสาหรบการยกแกนใหสงข ,น

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

7) แบงสามเหล�ยมเพ�ม โดยใชแกนท�สรางข ,นมาใหม

8) ยกเสนแกนข ,นมาเปนความสงโดยคานวณคาเฉล�ยจากระยะหางของจดก�งกลางสามเหล�ยมรปพดถง

ขอบภายนอก (External Edge) ดานท�ตดกบจดก�งกลางดงกลาว

9) เปล�ยนเสนท�เช�อมกบแกนท�ยกข ,นใหเปนโคงแบบไขเพ�อสราง Polygon แบบโคง

10) สรางเสนเช�อมโครงขายใหกลายเปน Polygonal Mesh

11) คดลอกโครงสรางไปอกดานแลวทาเปน Mesh Polygon ท�เปนรปปดและสมมาตร

สดทายลดเสนและสามเหล�ยมท�ไมจา เปนท ,ง จะไดผลลพธเปนโมเดล 3 มตข ,นมาจากการวาด

ขอสรปและขอเสนอแนะ

จากการใชงานโปรแกรม พบวาโปรแกรมชวยอา นวยความสะดวกในการข ,นโมเดลเบ ,องตน โดยจะสามารถใชสรางโมเดลท ,งแบบแคดและแบบฟรฟอรมไดดวยการวาดเพยงคร ,งเดยว ในงานท�ไมตองการความรายละเอยดถกตอง การใชโปรแกรม

CP’Sketchuu จะสะดวกกวาการใชโปรแกรมแบบ WIMP ท�วไป ขอ

เสยเปรยบของโปรแกรมน , คอ ทาไดเพยงการข ,นรปเพยงคร ,งเดยวไมสามารถเพ�มเตม

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

Platform เม�อมการลง Java Virtual Machine ซ�งในท�น ,จงสามารถนา

มาใชงานบน Linux ได

ขอบคณขอมลจาก http://www.hinsorn.ac.th/web/?p=41