Rational Bézier Curves

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 ต.ค. 2024
  • Discusses how to think about and work with rational Bézier curves as projections of polynomial Bézier curves.

ความคิดเห็น • 20

  • @kassemanis
    @kassemanis 8 หลายเดือนก่อน

    I have an exam in CAGD tommorow, i am trying to understand nurbs and the thing is, this video is so far the best on youtube. I hope to see more content like this

  • @policedog4030
    @policedog4030 4 ปีที่แล้ว +2

    Thank you! Yours is the clearest of the dozen or so of Bezier or De Casteljau videos I've seen so far. One approach for demonstrating Bezier curves that I haven't seen anyone do a video of yet would be the following: Assemble three Bezier curves together to form a (two-dimensional) tri-lobed (not rectangular) shape that seamlessly closes on it's own origin. And each "lobe" could have its own curvature; which might be the same or might be different than the other two "lobes" at the whim of the designer. Of course with the constraint that the end result of the three curves must close on the origin. In other words if I could use your formulas to steer that 2D shape all the way around and have it smoothly meet up with itself without leaving a visible corner I think I would feel it to be a more complete or easier-to-remember mental model of the formulas. I'm still looking so if I find such a demo I'll let you know. So far all of the demos just have the end point of the curve trailing off into space.

    • @codiecodemonkey
      @codiecodemonkey  4 ปีที่แล้ว +1

      Have you had a chance to look at NURBS curves for this? You could have a closed NURBS curve with degree-1 continuity everywhere (for a cubic NURBS curve you'd have point, tangent, and curvature continuity at the "knots"). NURBS are a generalization of Bézier curves and can be decomposed into separate Béziers, each connecting with the other with the continuity mentioned already.

  • @lazarsavic6562
    @lazarsavic6562 ปีที่แล้ว

    Very clear and helpful, thank you!

  • @amoghrijal
    @amoghrijal 2 ปีที่แล้ว

    thank you! You are such a good teacher!! I think you should create more videos

  • @abhinavaggarwal5488
    @abhinavaggarwal5488 8 ปีที่แล้ว +6

    Sir if it wasnt for ur video today i would have been forever lost in understanding probably the toughest part of my degree.. Cheers and please make more videos :D

  • @ShizhouLuo
    @ShizhouLuo ปีที่แล้ว +1

    just confused about that why do we have to create the homo-coordinates?
    is it because that we can improve the efficiency of our code when representing the bezier cure in a non-rational way(or say polynomial)?
    hope someone can figure it out.
    Truly thanks.

    • @ShizhouLuo
      @ShizhouLuo ปีที่แล้ว +1

      based on my knowledge, it is quite complex when we represent the Bezier Curve in a rational way(since it has to add a complicate denominator, so every term are time-consuming when we code), but I haven't really coded on my computer. So plz help me out🤣

    • @codiecodemonkey
      @codiecodemonkey  ปีที่แล้ว +1

      Rational Bézier curves are a superset of the polynomial Béziers, so one answer is that you have a wider pallet of curves. For example, a circular arc can be expressed as a rational Bézier, (why?), but not as a non-rational. Good question, I should have mentioned this in the video.

    • @codiecodemonkey
      @codiecodemonkey  ปีที่แล้ว +1

      To your point about added complexity: evaluation isn’t much more complex-it’s the same as polynomial evaluation with the added step of dividing at the end. But I agree that other algorithms such as fitting may be harder to reason about with rationals.

  • @holygl
    @holygl 9 ปีที่แล้ว +1

    Absolutely amazing explanation, thank you so much!
    I have a question that I was hoping you could help me with:
    For a Bézier curve with 2 end points; let's call them p1 and p2-each with a control point, let's call them c1 and c2 respectively and using with weightings p1w, c1w, c2w, p2w
    Is it possible to calculate a new Bézier curve that satisfies this curve?
    So for the following example, how would you calculate the new end points and control points:
    p1 = 1,1 and p1w = 0.5
    c1 = 5,2 and c1w = 1.2
    c2 = 9,0 and c2w = 1.0
    p2 = 6,7 and p2w = 2.0
    ...hope that makes sense :)

    • @codiecodemonkey
      @codiecodemonkey  9 ปีที่แล้ว

      Glad you liked the video. I don't quite understand what you're asking though. The set of coordinates and weights that you list defines a rational Bézier, what new end points and control points do you need?

    • @holygl
      @holygl 9 ปีที่แล้ว

      Thanks for your response :D
      In the following explanation, I am prefixing all mentions of 'Bézier curve' with either 'rational' or 'standard'. 'rational' being Bézier curves with control vertex weightings and 'standard' being without.
      I would like to know if it is possible to redefine a rational Bézier curve with non-uniform control vertex weightings as a 'standard' Bézier curve?
      From your video I understand that the resulting curve for a standard Bézier curve is identical to a rational Bézier curve defined by the same control vertices WHERE the control vertex weightings remain constant across all vertices.
      When the weightings for these vertices are non-uniform, the resulting curve is different to the standard Bézier curve.
      Given a rational Bézier curve with non-uniform control vertex weightings, is it possible to calculate a new set of control vertices that would produce an identical curve for a standard Bézier curve?

    • @codiecodemonkey
      @codiecodemonkey  8 ปีที่แล้ว +1

      +Matthew Wagerfield Sorry for the delayed reply. In general, rational functions cannot be reduced to polynomial functions. A 'standard' Bézier (aka polynomial Bézier) is just a vector valued polynomial function (from R -> R^n), whereas a rational Bézier is a vector valued rational function.

  • @xdxxdy
    @xdxxdy 10 ปีที่แล้ว

    cool I will try to make some curves in rhino and reconstruct the math with grasshopper, what program do you use to do it so intuitive?

    • @codiecodemonkey
      @codiecodemonkey  10 ปีที่แล้ว

      That's great, let me know how the Rhino/Grasshopper project goes. I use Mathematica for the images and manipulators.

  • @rayfletcher8759
    @rayfletcher8759 4 ปีที่แล้ว

    So a polynomial bezier is 2 dimensional, and a rational bezier curve is a projection of that 2 d curve, correct?

    • @codiecodemonkey
      @codiecodemonkey  4 ปีที่แล้ว

      I'd say it this way: Polynomial Béziers can live in any dimensional space you like, say N. Their projection into an N-1 space as described in the video is an N-1 dimensional rational Bézier. The video shows cases where N = 3.

    • @codiecodemonkey
      @codiecodemonkey  4 ปีที่แล้ว

      Sorry for the late reply!

  • @SoftDevPhilosophy
    @SoftDevPhilosophy 6 ปีที่แล้ว

    That was interesting.