คำถามติดแท็ก bezier-curve

4
วิธีการ raytrace Bezier พื้นผิว?
ฉันลองคำถามนี้ในวิชาคณิตศาสตร์ SEและที่น่าประหลาดใจคำตอบคือ "สมการที่น่ารังเกียจเกินไปเพียงแค่ป้อนฟังก์ชั่นให้กับเครื่องมือค้นหารากตัวเลข" แต่ถ้าคุณพิจารณาตัวเองว่า "ผู้ชายกราฟิก" อย่างฉันและเล่นอย่างกว้างขวางกับ Bezier curves สำหรับงานออกแบบฉันต้องเชื่อว่าสามารถทำได้ดีกว่า มีอัลกอริทึมที่เผยแพร่โดย Kajiya ที่ฉันไม่มีพื้นหลังที่จะเข้าใจ (ซิลเวสเตอร์เมทริกซ์) แต่คำแนะนำที่เกี่ยวข้องกับคณิตศาสตร์คือว่าผลที่ได้คือพหุนาม -18 องศาใน t และคุณยังต้องแก้ ตัวเลข ฉันมีความคิดอื่นที่มีผลที่คล้ายกัน ดังนั้นมันเป็นความฝันที่เต็มไปด้วยท่อหรือเปล่าที่หวังว่าจะสามารถแก้จุดตัดของเรย์ / เบซิเยร์พีชคณิตได้ดังนั้นจึงเป็นไปได้ที่จะเขียนโค้ดอย่างชัดเจนและราบรื่นที่สุด นอกจากนี้วิธีที่เร็วที่สุดในการคำนวณนี้คืออะไร คุณสามารถ "ค้นหา wiggles" เพื่อรับขอบเขตที่แน่นหนา (และเป้าหมาย) สำหรับการจัดสรรซ้ำหรือไม่? หากคุณต้องใช้เครื่องมือค้นหารูทแบบตัวเลข (ถอนหายใจ) จำเป็นต้องใช้คุณสมบัติใดและมีตัวเลือกที่ดีที่สุดสำหรับความเร็วหรือไม่ ความคิดเดิมของฉันเป็นเรื่องเกี่ยวกับการเตรียมความพร้อมสำหรับผิวจำเพาะคล้ายกับการขยายตัวของ Laplace ที่อธิบายไว้ในคำตอบของฉันคำถามคณิตศาสตร์อื่น ๆ เกี่ยวกับรูปสามเหลี่ยม แต่ฉันก็สนใจวิธีการทั่วไปเช่นกัน ฉันแค่คิดว่าการกำหนดชุดของรูปทรงเหมือนกาน้ำชายูทาห์ แต่ฉันจะสนใจวิธีการปรับให้เหมาะสมสำหรับการเชื่อมโยงทางโลกในเฟรมภาพเคลื่อนไหว

2
การวาดภาพด้วยฮาร์ดแวร์ที่เร่งความเร็วของรูปทรงโค้ง
วิธีการวาดรูปโค้งอย่างรวดเร็ว? โดย "เร็ว" ฉันคิดว่าควรใช้สิ่งอำนวยความสะดวกด้านฮาร์ดแวร์ให้มากที่สุด โดย "โค้ง" ฉันหมายถึงขอบเขตที่กำหนดโดยเส้นโค้งกำลังสองหรือลูกบาศก์ Bezier โดย "รูปร่าง" ฉันหมายถึงจังหวะ "อ้วน" (กว้างมากกว่า 1px) หรือแม้กระทั่งแปลก / ไม่ใช่ศูนย์เต็ม "รูปหลายเหลี่ยมโค้ง 2D" อาจมีรู (เช่นตัวอักษร "O") ฉันถามเพราะตัวเลือกที่ฉันรู้จักมีข้อบกพร่องหลายประการ: การหารูปทรงสามเหลี่ยมแล้วส่งไปยัง OpenGL - ทำงานได้ยากที่สุดใน CPU และอาจใช้รูปสามเหลี่ยมมากเกินไป / น้อยเกินไป (เช่นสิ้นเปลือง / หยาบ) พื้นผิวแผนที่ - ต้องคำนวณใหม่ / อัปโหลดพื้นผิวในทุกการเปลี่ยนแปลง (รูปร่างระดับการหมุน ... ) ฟิลด์ระยะทางที่มีการเซ็น - ขนาดใหญ่รายละเอียดดูไม่สวยหรือต้องคำนวณใหม่ / อัปโหลดพื้นผิว NV_path_rendering - อาจเป็นได้หากไม่ได้ทำงานกับการ์ดของ …

2
การทดสอบที่เชื่อถือได้สำหรับจุดตัดของสองเส้นโค้ง Bezier
จะรู้ได้อย่างไรว่า Bezier ระนาบสองเส้นตัดกัน? โดย "เชื่อถือได้" ฉันหมายถึงการทดสอบจะตอบว่า "ใช่" เฉพาะเมื่อเส้นโค้งตัดกันและ "ไม่" เฉพาะเมื่อไม่ได้ตัดกัน ฉันไม่จำเป็นต้องรู้ว่าพารามิเตอร์ที่จุดตัดพบที่ ฉันยังต้องการใช้ตัวเลขทศนิยมในการดำเนินการ ฉันพบคำตอบหลายคำใน StackOverflow ที่ใช้กล่องขอบเขตของเส้นโค้งสำหรับการทดสอบ: นี่ไม่ใช่สิ่งที่ฉันตามมาเพราะการทดสอบดังกล่าวอาจรายงานจุดตัดแม้ว่าเส้นโค้งจะไม่ตัดกัน สิ่งที่ใกล้เคียงที่สุดที่ฉันพบคือ " ขอบเขตลิ่ม " โดย Sederberg และ Meyers แต่มัน "เท่านั้น" แยกความแตกต่างระหว่างมากที่สุด - หนึ่ง - สองและ - หรือ - สี่แยกมากกว่าในขณะที่ฉันอยากจะรู้ว่ามี - ที่สุด - ศูนย์ และทางแยกอย่างน้อยหนึ่งรายการ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.