PDA

View Full Version : algorithm หาจุดหักมุมของเส้นที่วาด, ช่วยแนะนำหน่อยนะ



Anonymous
24-03-2005, 03:57 PM
อย่างเวลาเราวาดเส้นขึ้นมาเส้นนึงแต่มันไม่เป็นเส้นตรงสักเท่าไรหรอกแล้วต้องการให้โปรแกรมมองเห็นเป็นเส้นตรงแล้วพอมีจกหักมุมที่มีองศาการหักมุมมากๆก็ให้โปรแกรมมองเห็นว่าเกิดการหักมุมแล้วพร้อมกับหาจุดหักมุมด้วย
อย่างภาพตัวอย่างด้านซ้ายคือดภาพที่วาด ด้านขวาคือภาพที่โปรแกรมมองเห็นช่วยคิด algorithm หน่อยนะครับเดี๋ยวเขียน code เองhttp://community.thaiware.com/uploads/post-10-1111652637.gif

maxdezign
25-03-2005, 07:18 AM
ก็ chk แนว x เอาครับ

จุดเริ่มต้น คือ x1 จุดปล่อยคือ x2
หาจุดทั้ง 2 ไม่มีค่าห่างหันเท่าไหร่ หรือต้องหารให้เป็นเส้นตรงๆเลย ก็ให้

x1 และ x2 มีค่าเท่ากันครับ จากนันใช api drawing ลากมาตามแนว y จะได้เส้นตรง

จุดหักมุมที่มีองศาหักมุมมากๆ ก็คิอดว่าน่าจะ คล้ายๆกันนะครับ

ส่วนเร่องหากต้องการหาองศา ก็ต้อง ตีโกน ละครับโดยเทียบเอาจากจุด x2y2 กับจุดที่สร้งหใม่สุด x3y3 ละกันครับ

ป.ล. ผมเคยเขียนใน flash ครับ ผิดพลาดขออภัยคับ

Anonymous
25-03-2005, 10:55 AM
ขอบคุณครับ

ผมก็ว่าจะเขียนบน flash อยู่เหมือนกัน
ตอนนี้ก็คิดออกอีกวิธีแล้วคือใน flash จะมีป่มปรับเส้นให้มันโค้ง smmoth มากขึน หรือตรงยิ่งขึ้นใช่มั๊ยครับ ไม่รู้ว่าคำสั่ง action script ตรงนี้เขียนยังไงหรอ

BingLi224
25-03-2005, 05:39 PM
ผมคิดว่าอยู่ที่วิธีการวาด

ถ้าลากแล้ววาดไปแบบ paint พอปล่อยแล้วให้คำนวณ คงยากครับ ต้องรู้จุดเริ่มต้น แล้วไล่ check ทีละจุดไปเรื่อยๆ หาส่วนที่ทำมุมกันมากกว่าที่กำหนดแล้วลากเป็นเส้นตรงจากที่เริ่มถึงที่ๆ เจอ แล้วเอาจุดใหม่เป็นหลัก ลากต่อไป จนสุดเส้นครับ

ไม่แน่ใจว่าจะเป็นเรื่อง image processing รึป่าวครับ

corelmax
14-08-2010, 11:50 PM
ถ้าเป็นเหมือนการปรับเส้นที่ยึกๆยือๆ ให้กลายเป็นเส้นตรง ถ้าใช้เป็นการวัดจุดที่ x1y1 กับ x2y2 มันอยู่ห่างกันมากหรือไม่ ถ้าไม่มากให้ตีเป็นเส้นตรง ถ้าในกรณ๊ที่ มีการวัดเป็นมุมหัก จุด x2y2 จะออกห่างจาก x1y1 มากแน่นอน ถ้าใช้การลากเส้นจาก x1y1 ไป x2y2 กลายเป็นเส้นแทยงไปดื้อๆครับ

น่าจะใช้การแทนที่เม็ดสีได้นะ
วิธีการก็ กำหนดขอบของตาราง โดย วัดจาก pixel บนสุด ซ้ายสุด ขวาสุด ล่างสุดที่มีเม็ดสีนี้อยู่(อาจจะบวกซัก 2 - 5 เผื่อเหนียว) เพื่อเป็นการจำกัดขอบของการประมวณผล

คิดตามหลักความคิดของมนุษย์ จะตัดสินใจว่าคนวาดเส้นนั้น ตั้งใจจะให้ตรงหรือไม่ ตัดสินใจจากอะไรครับ
เส้นที่วาดไปหากมีจุดใดหักออกไปแต่ในระยะใกล้เคียงกันนั้นมีการกลับเข้ามาในระนาบเดิม เราก็จะตัดสินว่ามันคือเส้นตรง
ในทางกลับกัน หากมีจุดที่ออกจากระนาบเดียวกันในจำนวนหนึ่งโดยไม่มีการเข้าหาระนาบเดิม เราก็จะติดสินว่ามันคือเส้นตัด

ไม่รู้ว่าจะเข้าใจมั้ยนะ เพราะผมเองก็ไม่เป็นเรื่อง image processing เหมือนกัน แค่อ่านๆมานิดหน่อย แต่จากที่ผมมั่วๆไปก็น่าจะนึกวิธีเขียนโปรแกรมออกนะครับ
แรกๆอาจจะประมวณผลซ้ำหลายๆรอบ โดยไม่มีการติดสินใจว่าเส้นนั้นคือเส้นตรงหรือเป็นมุมหัก แต่ใช้วิธีการปรับจุดสีให้เข้าสู่ศูนย์กลางเรื่อยๆ จนกว่าจะไม่มีจุดสีใดที่แตกจากศูนย์กลาง แล้วค่อยตัดสินใจ
ในกรณีที่เป็นเส้นแทยง ก็คงต้องใช้ตรีโกณฯ เข้าช่วยในการหาศูนย์กลางของแนวระนาบ

ก็คงประมาณนี้นะครับ เอาไว้ผมเข้ามหาลัยฯแล้วเดี๋ยวผมไปดูดความรู้อาจารย์มาเสริมให้แล้วกัน โฮะๆ ทำก็ไม่เป็นทะลึ่งไปตอบเค้าอีกเรา 555+

**ปล. ในแต่ละ loop ของ process ก็ให้ simulate ภาพขึ้นมาภาพนึงให้เห็นการย้ายของแต่ละจุด มันจะดูเท่ๆ แล้วก็เป็นการ debug ไปในตัวคับ