Vous êtes sur la page 1sur 5

Project 1: Bzier Fonts

Matt Lepine
ME 5401
September 12, 2016

DESIGN STRATEGY
I began both the cubic and quintic curve designs for the f by using
online interactive curve manipulation websites to get an idea of where the
control points might go. Then, I plugged the initial control point locations into
the Excel worksheet. Next, I plotted the curves in Excel to see how my initial
guesses looked. Next, I adjusted the control points until the letter looked
correct. Throughout this process, I ensured that the curve segments stayed
G1 continuous, by ensuring that the slopes at each of the adjacent endpoints
were equal; in fact, I set the slopes of the high and low points of the f to
equal zero, to ensure that the maximum and minimum points of the curves
were set at y=1 and y=0.5 , respectively. At the cusp of the f, I set the
slopes of the two segments to be equal to one another, to prevent an
inadvertent loop in the design.
The design of the cubic f involves four curve segments: one connecting
the start of the letter to the peak of the f, one connecting this highest point
to the lowest point, one connecting the lowest point to the cusp, and one
connecting the cusp to the end of the f. Aside from the negative slope of the
cusp intersection, the remaining end tangents have a zero slope, to provide
the greatest control over the design. I situated the cusp at an appropriate
point on the second curve, to ensure that the segments were G 0 continuous
(this point is found at u=0.55 of the second curve). Compared to the
DNealian cursive f, this design is very similar, although the loops are slightly
wider (which in my opinion looks better) and the second curve (joining the
top to the bottom) has a greater curvature (as is the nature of curves).
The design of the quintic f involves three segments: one connecting
the start of the letter through the peak and down to the bottom of the f, one
connecting the lowest point to the cusp, and one connecting the cusp to the
end of the f. Similar to the cubic f, aside from the negative slope of the cusp
intersection, the remaining end tangents have a zero slope. I situated the
cusp at an appropriate point on the first curve, to ensure that the segments
were G0 continuous (this point is found at u=0.79 of the first curve).
Compared to the DNealian cursive f, this design is quite similar, although
the loops are slightly wider, and the curve joining the top to the bottom (the
first one) has a greater curvature than that of the straight line of the
DNealian font.

INSIGHTS GAINED / PROBLEMS ENCOUNTERED


Through this project, I learned a lot about the nature of Bzier curves,
most notably how changing the control points affects the shape of the curve.
I also gained a better understanding of G 1 continuity. In general, I understand
much more about these curves after working extensively with them, rather
than just learning about them.
Luckily, I did not run into too many problems with this project. The
online interactive curve manipulation websites were a big help in
understanding general locations of the control points, especially for the more
complicated quintic curves. I did run into some problems when plotting the
points. Originally I only used ten data points for each plot, but that did not
result in very smooth plots; it was not too bad for the cubic curves, but it was
decently bad for the quintic curves. To alleviate this problem, I doubled the
number of data points for the cubic curves and quadrupled the number of
data points for the quintic curves, to get more accurate plots. I ran into
difficulty when designing the quintic f, in that I did not have very good
control over the maximum y value of the first curve. To solve this, I set
y (u )=1 and y ' ( u ) =0 for P2 and solved the system of equations using
Mathcad to find the values of u and y that would satisfy the given constraint.

DESIGN SPECIFICATIONS
1. You must create lower case letters using one or more Bzier curves.
You shall choose the number of curves necessary to reproduce the
desired shape; it is expected that a minimum number of curves will be
used in order to keep the database as small as possible. The letters
shall have zero curve width (ie. no filled letters). Two versions of the
letter are to be created, the first using cubic curves and the second
using quintic curves.
The cubic version uses four segments.
The quintic version uses three segments.

2. All letters shall be G1 continuous at the intersections between curves or


critical points, unless the font has a cusp, such as in the letters f, j, k,
m, n, p, q, u, w, y and z. In these cases, the letter shall be G 1
continuous at all connections that are not cusps. Letters should appear
as close to the shapes of the DNealian cursive font, taking into
consideration the location and tangents at end points and critical
points.
All curves are G1 continuous, except for at the cusps.

3. The basic letter shall be constructed based on unit height and width.
Use the DNealian font shown on the webpage that is posted with this
assignment. Create your letter with proper proportions. For example,
the lower case letter k is one unit high, above the baseline; the letter
n is one-half unit high; the letter y is one-half unit high above the
baseline and one-half unit below the baseline.
The unit height for a cursive f is one unit above the
baseline and one-half unit below the baseline.
4. Most fonts use proportional spacing. This means that the letters have
variable width, for example, m is much wider than t. However, to
simplify our problem, we will use a uniform letter width of 1 unit.
Both forms of the letter are one unit wide.

5. The lead of each letter shall begin at the baseline and be tangent to
it. This will ensure that the words are G1 continuous.
The lead of the letter is tangent to the baseline.

6. The tail of each letter shall end at the baseline and be tangent to it.
The tail of the letter is tangent to the baseline.

7. The letters shall include scaling and translation factors such that they
can be positioned within a sentence.
The letters have these scaling and translation factors.
The scaling factors default value is 1.
The translation factors default value is 0.

Vous aimerez peut-être aussi