ฉันจะมุ่งเน้นคะแนนในพื้นที่ของความโค้งที่สูงขึ้นได้อย่างไร


11

ฉันจะกระจายคะแนนไปบนพื้นผิวโดยนัยได้อย่างไรเพื่อเพิ่มสมาธิในพื้นที่ที่มีความโค้งสูงกว่า

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

ฉันกำลังมองหาจุดเหล่านี้โดยเฉพาะเพื่อการหารูปสามเหลี่ยมของพื้นผิวและฉันไม่ต้องการที่จะสร้างรูปสามเหลี่ยมมากขึ้นกว่าที่ฉันต้องการสำหรับชิ้นส่วนที่ค่อนข้างแบน


สิ่งนี้จะถูกนำไปใช้กับรูปร่างที่มีอนุพันธ์รู้จักที่รู้จักกันดังนั้นความโค้งที่จุดที่กำหนดสามารถคำนวณได้

สิ่งนี้ไม่จำเป็นต้องเป็นวิธีการตามเวลาจริง


คุณกำลังมองหาวิธีที่แม่นยำกว่าในการสุ่มตัวอย่างจากการแจกจ่ายโดยไม่มีการทดสอบ montecarlo ฉันหมายถึงอะไร? หากคุณไม่สนใจวิธีการคำนวณมากนัก (เช่นคุณกำลังมองหาวิธีการที่แม่นยำมากกว่าความพยายามในการคำนวณ) ฉันอาจมีวิธีแก้ปัญหา แต่ก็สามารถปรับให้เหมาะสมที่สุดได้
user8469759

3
คุณรู้ฟังก์ชั่นการวิเคราะห์หรือคุณสามารถลองตัวอย่างมันได้หรือไม่? คุณรู้อนุพันธ์การวิเคราะห์หรือไม่
Julien Guertault

@JulienGuertault การแก้ไขของฉันมีความชัดเจนหรือไม่
trichoplax

@ Lukkio ฉันต้องการความแม่นยำก่อนจากนั้นการปรับให้เหมาะสมสามารถทำได้ในภายหลังเมื่อวิธีการทำงาน
trichoplax

1
คุณอาจต้องการดูวิธีการไฟไนต์ - อิลิเมนต์ซึ่งใช้สมการ (หรือโดยทั่วไป: แบบง่าย) และมักประสบปัญหาในการต้องการความหนาแน่นของการสุ่มตัวอย่างที่สูงขึ้นในภูมิภาคที่เลือก พวกเขาจะต้องพัฒนาอัลกอริธึมสำหรับสิ่งนี้
Wrzlprmft

คำตอบ:


11

ความคิดที่ฉันจะลองใช้คือ: ฉันทำตัวอย่างสำหรับเส้นโค้ง แต่ควรตรงไปตรงมาสำหรับการใช้งานกับพื้นผิว

สมมติว่าเรามีเส้นโค้งพาราเมตริกแบบสม่ำเสมอ สมมติว่าพารามิเตอร์ของเส้นโค้งคือs เป้าหมายของคุณคือจุดตัวอย่างที่สอดคล้องกับค่าของsดังกล่าวว่าโค้งอยู่ในระดับสูงγss

ถ้าคุณได้ขนาดของความโค้งนี่จะเป็นฟังก์ชันของsเช่นกัน ดังนั้นถ้าคุณปกติฟังก์ชั่น| c | คุณจะได้การแจกแจงความน่าจะเป็น ถ้าคุณได้รับอินทิกรัลของการแจกแจงแบบนั้นคุณจะได้การแจกแจงสะสม ขอเรียกฟังก์ชั่นที่สะสมนี้C ( s )cs|c|C(s)

ปัญหาการสุ่มตัวอย่างจากการแจกแจงที่กำหนดโดยฟังก์ชั่นสะสมเป็นที่รู้จักกันดีดังนั้นโดยทั่วไปเมื่อคุณสุ่มตัวอย่างชุด , nแล้วค่าดังกล่าวจะเกี่ยวข้องกับจุดสนใจs0,s1,,sn

การใช้วิธีนี้กับกรณีของพื้นผิวควรจะตรงเนื่องจากโดยทั่วไปคุณมีฟังก์ชั่นการกระจายแบบสองมิติ แต่ปัญหาการสุ่มตัวอย่างเหมือนกันทุกประการ

เพื่อให้รายละเอียดบางอย่างมันเป็นการสุ่มตัวอย่างจากการแจกแจงเนื่องจากฟังก์ชั่นสะสมมีสองขั้นตอน:

  1. หาค่าสุ่มในช่วงสมมุติว่าk[0,1]k

  2. แก้สมการ kC(s)=k

วิธีนี้แน่นอนว่ามีราคาแพง แต่ถ้าคุณชอบแนวทางดังกล่าวคุณสามารถเพิ่มประสิทธิภาพได้


1
ยังไม่รองรับน้ำยาง
joojaa

ฉันกำลังมองหาบางอย่างที่สามารถใช้กับพื้นผิวที่เป็นนัยแม้ว่ามันจะไม่มีพารามิเตอร์ เป็นไปได้หรือไม่ที่จะกำหนดพารามิเตอร์พื้นผิวโดยนัยหากรู้จักอนุพันธ์
trichoplax

คำถามใด ๆ ที่จะได้รับประโยชน์จาก MathJax สำหรับสูตรสามารถเพิ่มในคำตอบ meta นี้เพื่อเพิ่มโอกาสในการรับ MathJax (อันนี้ถูกเพิ่มไปแล้ว)
trichoplax

จำไว้ว่าสิ่งที่คุณต้องการคือฟังก์ชันการแจกแจงที่ได้มาจากความโค้งคุณบอกว่าคุณสามารถหาทุกอย่างได้ (โดยที่คุณมีพื้นผิวแบบใด? อย่างไรก็ตาม ... คุณหมายถึงอะไรกับ "อนุพันธ์ที่รู้จัก" คุณรู้สูตรที่ชัดเจนของอนุพันธ์หรือไม่ หรือโดยปริยายเช่นกัน? (เช่นอธิบายโดยใช้สมการเชิงอนุพันธ์)?
user8469759

1
โดยวิธี ... ถ้าเส้นโค้ง / พื้นผิวเป็น algebric (ฉันหมายถึงการแสดงออกโดยพนักงานพหุนามหรือเหตุผล) มีวิธีการคำนวณตาม bspline / nurbs ที่อธิบายวิธีการดำเนินการ parametrization ของเส้นโค้งดังกล่าว ฉันได้ดูที่นี่docs.lib.purdue.edu/cgi/…วิธีการเพิ่มเติม (ขั้นสูง) สามารถพบได้ในหนังสือเล่มโปรดหนึ่งเล่มของฉันใน Nurbs (The NURBS book by Tiller)
user8469759

2

จุดเริ่มต้นที่ดีคือกระดาษคลาสสิกที่ใช้อนุภาคเพื่อสุ่มตัวอย่างและควบคุมพื้นผิวโดยนัยที่ตีพิมพ์ใน SIGGRAPH 1994

การจำลองอนุภาคอย่างง่ายที่อธิบายไว้ในกระดาษการเก็บตัวอย่างวัตถุโดยปริยายด้วยระบบอนุภาคตามร่างกาย ( คอมพิวเตอร์และกราฟิก , 1996) สำหรับส่วนโค้งทำงานบนพื้นผิวเช่นกัน ดูพื้นผิวแบบไดนามิกสำหรับพื้นผิวโดยนัยสำหรับตัวอย่าง

สำหรับตัวอย่างล่าสุดดูรูปร่างและโทนสีสำหรับพื้นผิวโดยนัย ( คอมพิวเตอร์และกราฟิก , 2011)


2

แนวทางไร้เดียงสาต่อไปนี้อาจไม่ได้ผลตามที่ได้รับการกระจายอย่างดีเท่าที่ได้รับจาก Lhfแต่มันควรจะง่ายกว่ามากในการนำไปใช้และคำนวณได้เร็วขึ้น:

xyd(x,y)xyxy

A

  1. xd(x,x)

  2. A

  3. A

    1. xyA
    2. zd(x,y)A
    3. zd(x,y)A

      • ถ้าใช่ละทิ้ง
      • xzyzzA

A

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.