Bezier curve to NURBS curveGreetings,
I'm pretty sure that a Bezier curve can be represented exactly by a
NURBS curve. However what I need is an algorithm to convert Bezier
curves (Quadratic and Cubic) to a NURBS curve. If I'm not mistaken, it
should involve manipulating the knots while using the same control
points. I've seen an algorithm or two on the web but they seem to fail
most of the time.
Can you lead me in the right direction?
Thanks,
Abdo Haji-Ali
Programmer
In|Framez
You simply take the Bezier control points plus additional degree-1
control points at the beginning and the end point of the curve,
which are combined as multiple knots, like
p0, p0, p0, p1, p2, p3, p3, p3 control points
t0, t0, t0, t1, t2, t3, t3, t3 knotvector with t_(i+1) - t_i = const
for a cubic Bezier curve.
- NR
Abdo Haji-Ali schrieb:
> Greetings,
>
> I'm pretty sure that a Bezier curve can be represented exactly by a
> NURBS curve. However what I need is an algorithm to convert Bezier
> curves (Quadratic and Cubic) to a NURBS curve. If I'm not mistaken, it
> should involve manipulating the knots while using the same control
> points. I've seen an algorithm or two on the web but they seem to fail
> most of the time.
> Can you lead me in the right direction?
>
> Thanks,
> Abdo Haji-Ali
> Programmer
> In|Framez
>
On Oct 12, 1:55 pm, News Reader <n...@nospam.edu> wrote:
> You simply take the Bezier control points plus additional degree-1...
Curve radius from bezier curve (segment)Hi there,
In my application the user can bent bezier curves with 3 or 4 control
points to almost any arbitrary shape.
What I need to display to the user is the (approximated) radius of the
largest circle, or rather circle arc, for which (at least a part of)
the bezier curve is the tangent. This may sound a bit confusing, a
small graphic may be helpful:
www.barnholt.net/Bezier_to_radius.png
A naive algorithm would start on either end of the bezier curve and
work its way forward along the curve, using a circle with a certain
max. radius and gradually decrease the circle radius until the bezier
curve is tangent of part of the circle.
But I'm sure, there's an intelligent way to solve the problem :-)
Any ideas are welcome!
regards,
Jan Barnholt
On 9 Oct 2005 00:20:26 -0700, "groups_account_barnholt_dot_net"
<groups@barnholt.net> wrote:
>What I need to display to the user is the (approximated) radius of the
>largest circle, or rather circle arc, for which (at least a part of)
>the bezier curve is the tangent. This may sound a bit confusing, a
>small graphic may be helpful:
>www.barnholt.net/Bezier_to_radius.png
Your graphic does not fit your description, which makes it hard to be
sure what you really want. At any point along a twice-differentiable
curve there is a unique "osculating circle", which can be calculated
from the curve and its derivatives at the point. In particular, the
radius of the osculating circle is a close...
bezier patch from boundary bezier curvesHi All,
I'm working on an evenlope distorion ala Adobe Illustrator.
I was wondering: if the "envelope" is defined as 4 planar connected cubic
bezier curves (i.e. the 12 control points on the boundary of a bezier
patch), is there a way to obtain the other 4 control points making up a flat
bezier patch so that the distortion is reduced to a simple quadrilateral
into bezier-patch mapping?
TIA
Fernando Cacciola
On Mon, 24 Nov 2003 22:07:24 -0300, "Fernando Cacciola"
<fernando_cacciola@hotmail.com> wrote:
>I'm working on an evenlope distorion ala Adobe Illustrator.
>I was wondering: if the "envelope" is defined as 4 planar connected cubic
>bezier curves (i.e. the 12 control points on the boundary of a bezier
>patch), is there a way to obtain the other 4 control points making up a flat
>bezier patch so that the distortion is reduced to a simple quadrilateral
>into bezier-patch mapping?
Sounds like you really want a Coons patch, named for Steven Coons.
Call the corners bottom left, bottom right, top left, and top right.
Parameterize each edge from 0 to 1, with u for left to right and v for
bottom to top. Picking a value of u, we obtain a point on the bottom
curve and a corresponding point on the top curve. Draw a straight line
between them. Repeat for every value of u to give a "ruled surface".
Do the same for v to get a second ruled surface. If we add the two
together we repeat the effect of, say, the c...
How to raytrace bezier surface or bezier curve?Just like in topic.
One possible approach is to employ appropriate numerical method for
root finding, for example two-dimensional Newton iteration. There are
other methods too, you may wish to check section 3.2 of "An Introducion
to Ray Tracing" book or some of papers discussing this problem
(starting from Kajiya's "Ray tracing parametric surfaces" from Siggraph
'82).
Alex.
...
Text on a curveText on a curve
Hi:
Using the following Mathematica 6.0.1 code, I get a nice picture as follows:
Module[{f, fs, t}, f[t_] = {Cos[t] + Sin[t], Sin[t]};
fs[t_] = D[f[t], t] // N;
h = Graphics[Rotate[Style[Text["
T"], 14], 90 Degree]];
Show[Graphics[{Arrowheads[{{Automatic, Automatic, h}}], {Red,
Arrow /@
MapThread[{#1 +
0.001 #2, (#1 -
2 #2)} &, {f /@ #, ({-1, 1} Reverse[#]/21) & /@ (#/
Sqrt[#.#] & /@ (fs /@ #))} &[#]]}, {Thickness[0.005], {Blue,
Line[f /@ #]}}} &[
...
Curved textI am just learning PSP7. I am trying to make a logo and I want to include
text along a curved line. I am following tutorials on vatious topics but
cannot find on bedning tect boxes. Any help? or point me to a site that
explains this.
Look for references to "Text on a path"
"Lori" <spamme@mchsi.com> wrote in message
news:ECoLb.2657$xy6.9604@attbi_s02...
> I am just learning PSP7. I am trying to make a logo and I want to include
> text along a curved line. I am following tutorials on vatious topics but
> cannot find on bedning tect boxes. Any help? or ...
On Bezier curvesPart of the documentation for the latest version of FF has led me to
<http://cubic-bezier.com/#.17,.67,.83,.67>, a marvelous page of graphic
illustration what's a Bezier curve and how do "control points" control it.
Of course, the PS curveto invocations all rely on Bezier curves, which is
why I post this lovely find in the present NG.
It's all graphics and no math, but I recommend it most highly anyway.
Cheers, -- tlvp
--
Avant de repondre, jeter la poubelle, SVP.
...
Bezier CurvesIm trying to write a bit of code that draws a bezier curve....
So far I have come up with..... please any suggestions what im doin wrong?
Thanks. J
int i;
double t,delta;
double [] oldx = new double[steps];
double [] oldy = new double[steps];
double [] newx = new double[steps];
double [] newy = new double[steps];
oldx[1] = xIn[0];
oldy[1] = yIn[0];
delta = 1.0/steps;
for(i=1;i<=steps;i++) {
t=i*delta;
newx[i] = xIn[0] * (1.0-t) * (1.0-t) * (1.0-t)
+ xIn[1] * 3.0 * t * (1.0-t) * (1.0-t)
+ xIn[2] * 3.0 * t * t * (1.0-t)
+ xIn[3] * t * t * t;
newy[i] = yIn[0] * (1.0-t) * (1.0-t) * (1.0-t)
+ yIn[1] * 3.0 * t * (1.0-t) * (1.0-t)
+ yIn[2] * 3.0 * t * t * (1.0-t)
+ yIn[3] * t * t * t;
//draws cruve
da.line(oldx[i],oldy[i],newx[i],newy[i]);
//new values for next line
oldx[i] = newx[i];
oldy[i] = newy[i];
}
Done it, I used to many unnessary arrays. But it still draws over the point
usin 10 sides, but perfectly when the number of sides is less than 10. Jen x
public void drawBezier (int [] xIn, int [] yIn, int steps) {
double t,delta, oldx, oldy, newx, newy;
oldx = xIn[0];
oldy = yIn[0];
delta = 1.0/steps;
for(t=delta;t<=1+delta;t+=delta) {
newx = xIn[0] * (1.0-t) * (1.0-t) * (1.0-t)
+ xIn[1] * 3.0 * t * (1.0-t) * (1.0-t)
+ xIn[2] * 3.0 * t * t * (1.0-t)
+ xIn[3] * t * t * t;
newy = yIn[0] * (1.0-t) * (1.0-t) * (1.0-t)
+ yIn[1] * 3.0 * t * (1.0-t) * (1.0-t)
+ yIn[2] * 3.0 * t * t * (1.0-t)
+ yI...
Curved textHi,
Just a brief question.
In Autocad 2004, how do I align text around a (reference) curve ?
I mean, each character should be rotated according to the curvature of
a given entity, like an arc, for example. (I searched the online help
but could find any references on this subject).
Thank you,
Fernando Ronci
E-mail: fernandoronci@hotmail.com
Google for "curvetext.zip" and you will find a LISP (arx) which
does the job.
Juergen
"Fernando Ronci" <fernandoronci@hotmail.com> schrieb im
Newsbeitrag
news:d4e3407b.0409080502.64ce3285@posting.google.com...
> Hi,
>
> Just a brief question.
> In Autocad 2004, how do I align text around a (reference) curve
?
May be of help...
In ACAD2002 w/ Express Tools, there is Arc Aligned Text.
On 9/8/2004 8:02 AM Fernando Ronci wrote:
> Hi,
>
> Just a brief question.
> In Autocad 2004, how do I align text around a (reference) curve ?
> I mean, each character should be rotated according to the curvature of
> a given entity, like an arc, for example. (I searched the online help
> but could find any references on this subject).
If you use ArcAlignedText in Express Tools as mentioned, consider that
it may not be readable/editable if you send the drawing to someone
without Express Tools.
I don't know anything about the lisp mentioned, but there are lisp
routines that calculate the position of each letter and use regular TEXT
...
text on curveHow do I make text on a circle where the text
is right-side-up above the circle and also on
the lower side of the circle? I am inferring from
the help files that
the curve is directional and the text follows the
direction? Everything I try, the text just follows
around the curve and is upside down on the bottom.
How can I make this work?
Thanks, Jeff J.
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =---...
Text On A Curve????Anyone know of a good plug-in for Photoshop that will allow the placing
of text graphics onto a curve, or a circle?
GB
>Anyone know of a good plug-in for Photoshop that will allow the placing
>of text graphics onto a curve, or a circle?
The easiest way to do this is in a vector program like Adobe Illustrator; it
takes less than five seconds.
--
Rude T-shirts for a rude age: http://www.villaintees.com
Art, literature, shareware, polyamory, kink, and more:
http://www.xeromag.com/franklin.html
Watch the end of this month when Photoshop 8.0 is announced. One new feature
is supposed to...
text + textWhat is "text + text" supposed to do right now? It doesn't seem very
useful to me. What about making "text + text" as an equivalent for "text
|| text"? Most strongly-typed programming languages do this. And MS SQL
Server too, I think (CMIIW).
--
dave
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
Am Freitag, 8. Oktober 2004 12:57 schrieb David Garamond:
> What is "text + text" supposed to do right now?
Nothing.
> What about making "text + text" as an equivalent for "text
> || text"? Most strongly-typed programming languages do this. And MS SQL
> Server too, I think (CMIIW).
What would this gain except for bloat? It's not like SQL is utterly
compatible with any programming language; users will still have to learn all
the operators anyway.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match
Peter Eisentraut wrote:
>>What is "text + text" supposed to do right now?
>
> Nothing.
Then are these bugs? (7.4.5 and 8.0.0beta1 give same results). Frankly,
the current behaviour is quite strange to me.
------------------
=...
text on curveHow do I make text on a circle where the text
is right-side-up above the circle and also on
the lower side of the circle? I am inferring from
the help files that
the curve is directional and the text follows the
direction? Everything I try, the text just follows
around the curve and is upside down on the bottom.
How can I make this work?
Thanks, Jeff J.
----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =---...
curved text....?I realize this has been discussed but.....
aside from a sheet metal part (mike j wilson) can you put text in on a
cylindrical surface as a string of text not individual letters? like you
would in a molded part...made in usa, part number, date code, etc. the text
needs to be truely cylindrical and with the ability to draft it for the mold
etc. thanks.
Depending on "how curved" it is you can use one of two methods:
- offset from surface extrusion
- new sw2004 "wrap" feature
matt
"3d" <jmiller@marvelindustries.com> wrote in
news:qb6dnQLlso5TpZHd4p2dnA@...
Bezier CurvesHi,
I am newbie to bezier curves. I am trying to plot bezier curve on the
screen. I am varying the
parameter t from t=0.0 to t =1.0 (using standard bezier equation).
Though I am incrementing t by equal amounts (ie. increment = 0.2), the
distance between any two
points on curve is not constant.
Is there any way to achive this?
I want the distance between any two consequtive points on the curve to
remain constant.
Thanks in advance,
Best Regards,
Yogesh Kini
yogesh.kini@gmail.com wrote:
> Though I am incrementing t by equal amounts (ie. increment = 0.2),
> the distance between any two points on curve is not constant. Is
> there any way to achive this?
No simple way. Equidistant samples along a generic curve require a
serious amount of calculus --- so much that it's often not worth
doing. You have to compute the curve length integral and run a search
on the result to find the point a given distance along the curve. For
a bezier curve, that integral itself is quite challenging already, so
it can only be done numerically.
--
Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de)
Even if all the snow were burnt, ashes would remain.
On 1 Sep 2005 03:05:01 -0700, yogesh.kini@gmail.com wrote:
> I am newbie to bezier curves. I am trying to plot bezier curve on the
>screen. I am varying the
>parameter t from t=0.0 to t =1.0 (using standard bezier equation).
> Though I am incrementing t by equal amounts (ie. increment = 0.2), the
>distance bet...
Bezier CurveI'm working to an algorithm to translate a dxf file to another format.
This format have a primitive that rappresent the Bezier Curve for 4
points.
DXF have instead n points for a BSpline curve.
Can I consider the n points group of BSpline on sets of 4 points each
other?
...
bezier curvesAnybody able to tell me how to draw a bezier curve with PSP8? The help
system says something like, "you can draw bezier lines," but give NO info on
how to do it. The option was right there in PSP7. TIA
"Beacon TS" <richardsobocinski@comcast.net> wrote in
news:D8OcncGxWJI30LSiXTWJhw@comcast.com:
> Anybody able to tell me how to draw a bezier curve with PSP8? The
> help system says something like, "you can draw bezier lines," but
> give NO info on how to do it. The option was right there in PSP7.
> TIA
Try these-->
http://moonsdesigns.co...
Curved textI am just learning PSP7. I am trying to make a logo and I want to include
text along a curved line. I am following tutorials on vatious topics but
cannot find on bedning tect boxes. Any help? or point me to a site that
explains this.
Look for references to "Text on a path"
"Lori" <spamme@mchsi.com> wrote in message
news:ECoLb.2657$xy6.9604@attbi_s02...
> I am just learning PSP7. I am trying to make a logo and I want to include
> text along a curved line. I am following tutorials on vatious topics but
> cannot find on bedning tect boxes. Any help? or ...
bezier curvesAnybody able to tell me how to draw a bezier curve with PSP8? The help
system says something like, "you can draw bezier lines," but give NO info on
how to do it. The option was right there in PSP7. TIA
"Beacon TS" <richardsobocinski@comcast.net> wrote in
news:D8OcncGxWJI30LSiXTWJhw@comcast.com:
> Anybody able to tell me how to draw a bezier curve with PSP8? The
> help system says something like, "you can draw bezier lines," but
> give NO info on how to do it. The option was right there in PSP7.
> TIA
Try these-->
http://moonsdesigns.co...
text-textWondering how what I input to my UTF-8 terminal gets passed along
through my patched [1] trn ...
Cyrillic:
А Б В Г Д Е Ж З И Й К Л М Н О П
а б в г д е ж з и й к л м н о п
IPA:
ᴀ ᴁ ᴂ ᴃ ᴄ ᴅ ᴆ ᴇ ᴈ ᴉ ᴊ ᴋ ᴌ ᴍ ᴎ ᴏ
ɀ Ɂ ɂ Ƀ Ʉ Ʌ Ɇ ɇ Ɉ ɉ Ɋ ɋ Ɍ ɍ Ɏ ɏ
[1] https://groups.google.com/d/msg/comp.sys.raspberry-pi/7Z37Hdrm0DM/6aqD-reXFzAJ
...
Bezier curve fiting/converting polynomial coefficients to Bezier control pointsHi,
I'm not a mathematician so I guess my problem has a very simple
solution. In general I'm trying to find a way to bezier curve fit my
signals. I found that the polyfit fuctions does a good job, but I
don't know how to convert the polynomial coefficients to the bezeir
control points.
I find it difficult to understand the Bezier-Bernstein formula.
can anyone please help me?
thanks,
zachi
Hi Zachi; I have wrote some time ago two functions; the first,
Bernstein.m, computes the Bernestein polynomials on n+1 assigned
points, and the second, Bezier3d.m, the relative ...
A question on a Bezier curve offsetting reply by Dave Eberly in 2004; why is an offset curve not polynomial?In a post in 2004 (hurray for archives), Dave Eberly explained why you can't
have a polynomial offset curve be itself a polynomial. His post read:
"Generally, y, if you start with a polynomial curve and try to offset, the
result will no longer be a polynomial curve. The idea is as follows for a
planar curve.
"Let et the planar curve be parameterized as P(t). A unit-length tangent
vector is T(t) = P'(t)/|P'(t)| where P'(t) is the derivative of P (t) and
|P'(t)| is the length of the derivative. In the plane, you can write T(t) =
(cos(A(t)),sin(A(t))) for some angle A(t). A unit- length normal is N(t) =
(-sin(A(t)),cos(A(t))) and is oriented to point to the "left" of the curve as
you traverse it in the tangential direction.
"Let et Q(t) be a curve that is to be "offset" from P(t) by a constant
distance r. The offset is presumed to be in the normal direction, so you want
Q(t) = P(t) + r*N(t). If P(t) is a polynomial curve, the only way for Q(t) to
be a polynomial curve is if N(t) has polynomial components. Now notice that
the components of N(t) are the components of T(t), and the components of T(t)
are polynomial terms [P'(t) has polynomial components] *divided* by the
length of P'(t), a term that is not generally a polynomial. When the length
is not a polynomial, neither is Q(t)."
Reading this seems to imlpy that the offset can be polynomial in those cases
where |P'(t)| is polynom...
setting TeX text variable depending on keyval-generated param? (low-level TeX question)I am using keyval to set a "scaled" parameter and am having trouble
getting the right behavior, which is:
If I \usepackage{package} with no [scaled] option, I want to set a
variable to a compile-time-specified default, say "s*[a.b]".
If I \usepackage[scaled]{package}, same thing.
And if I \usepackage[scaled=x.y], I want to set the variable to
"s*[x.y]".
(This is for font scaling, and I've used as my model the Helvetica
scaled parameter.)
The variable name (for the purposes of this conversation) is
pnm@scaled. What I have that's not working correctly is:
\expandafter\ifx\csname pmn@scaled\endcsname\relax
\let\pmn@scaled\@empty
\else
\edef\pmn@scaled{s*[1.2]}%
\fi
I think what this says is "if pnm@scaled is not defined (case 1), leave
it empty, otherwise set it to "s[1.2]". But the else clause is not
working correctly, and I don't know how to differentiate between
"defined by keyval but with no value" and "defined by keyval but with a
value". Also I'm pretty sure I don't really know the difference between
\let and \edef.
Any help gratefully appreciated. Thanks.
JDO
john_owens@yahoo.com schrieb:
> I am using keyval to set a "scaled" parameter and am having trouble
> getting the right behavior, which is:
>
> If I \usepackage{package} with no [scaled] option, I want to set a
> variable to a compile-time-specified default, say "s*[a.b]".
>
...
How does one find the 't' value on a bezier curve corresponding to some distance along the curveHi all,
If I have a Bezier curve (of any order), I know how to clip at a 't' value
using de Casteljau's algorithm, and I know how to compute the arc length of
the curve without flattening, using the Gauss-Legendre quadrature approach
for computing the curve's integral over interval t=[0,1]. So far so good -
the real problem is this: how do I determine which 't' value corresponds to a
certain distance along the curve?
Let's say I have a curve with a computed arc length over interval [0,1] of
100 units. In order to travel across this curve at some (arbitrary)
fixed-distance interval I will need to know which 't' values the distances
map to, but if I need the 't' value for a distance of 71 units along the
curve, 0.71 is the least likely value it will have =)
Which function, or set of functions, can be used to determine the 't' value
based on arc length?
Regards,
- Mike "Pomax" Kamermans
nihongoresources.com
On 23.04.2011 20:26, Pomax wrote:
> the real problem is this: how do I determine which 't' value corresponds to a
> certain distance along the curve?
The same old way you solve any problem involving how to find the inverse
of a function that doesn't allow itself to be inverted analytically: use
a numerical root finder to find the place where the function takes on
the given value, i.e. solve
length(Curve, t) = l
> Which function, or set of functions, can be used to determine the ...