ในระบบของเรามีข้อกำหนดที่เราต้องการย้ายบรรทัดซอร์สบางส่วน (ที่มีความแม่นยำต่ำ) ไปยังบรรทัดอ้างอิง (ที่มีความแม่นยำสูง) รูปภาพต่อไปนี้ให้กรณีการใช้งานปกติ เส้นสีแดงเป็นเส้นแหล่งที่มาและเส้นสีฟ้าเป็นเส้นอ้างอิง
สำหรับกรณีนี้บรรทัดที่มาจะถูกย้ายบางส่วนและผลที่ได้จะเป็นเส้นสีเขียวแสดง:
มีสถานการณ์ที่ต้องย้ายบรรทัดซอร์สอย่างสมบูรณ์
ผลลัพธ์:
ขณะนี้โซลูชันของเราคือฉายจุดส่วนหัว / จุดสิ้นสุดของบรรทัดซอร์สไปยังบรรทัดอ้างอิงและในทางกลับกันจากนั้นหาจุดที่คาดการณ์ไว้บนซอร์สและบรรทัดอ้างอิง ด้วยจุดที่คาดการณ์เหล่านี้เราสามารถแยกส่วนที่ต้องการของแหล่งที่มาและบรรทัดอ้างอิงจากนั้นรวมเข้าไปในส่วนใหม่
วิธีนี้ใช้ได้ผลกับกรณีส่วนใหญ่ แต่มีบางกรณีที่วิธีนี้ใช้ไม่ได้ โดยเฉพาะอย่างยิ่งเมื่อบรรทัดใดบรรทัดหนึ่งมีรูปร่าง "C" หรือจุดหัวใกล้กับจุดสิ้นสุดมาก ภาพสองภาพถัดไปให้สถานการณ์
ใช้อัลกอริทึมของฉันเราจะได้ผลลัพธ์:
เป็นวิธีที่เข้าใจได้เพราะอัลกอริทึมปัจจุบันเพิ่งพบจุดที่ฉายและแยกบรรทัด
สิ่งที่เราคาดหวังคือสิ่งนี้:
ดังนั้นสิ่งที่ฉันต้องการอัลกอริทึมที่มีประสิทธิภาพมากขึ้นในการทำเช่นนี้เพื่อให้สามารถจัดการกรณีพิเศษเช่นกรณีก่อนหน้านี้ ฉันพยายามฉายทุกจุดจากบรรทัดหนึ่งไปยังอีกจุดหนึ่งและหาจุดที่ฉายสองจุดที่อยู่ใกล้กับส่วนหัว / จุดสิ้นสุดของเส้นที่ฉายที่สุด แต่ก็ไม่มีโชค ถึงกระนั้นฉันสามารถค้นหากรณีที่ให้ผลลัพธ์ที่ไม่คาดคิด
มีใครเคยเจอปัญหาที่คล้ายกันมาก่อนหรือไม่ มันจะดีถ้ามีซอฟต์แวร์หรือไลบรารีสามารถทำงานที่คล้ายกัน คำตอบใด ๆ ที่จะได้รับการชื่นชม