3
'\" The definitions below are for supplemental macros used in Tcl/Tk
6
'\" .AP type name in/out ?indent?
7
'\" Start paragraph describing an argument to a library procedure.
8
'\" type is type of argument (int, etc.), in/out is either "in", "out",
9
'\" or "in/out" to describe whether procedure reads or modifies arg,
10
'\" and indent is equivalent to second arg of .IP (shouldn't ever be
11
'\" needed; use .AS below instead)
14
'\" Give maximum sizes of arguments for setting tab stops. Type and
15
'\" name are examples of largest possible arguments that will be passed
16
'\" to .AP later. If args are omitted, default tab stops are used.
19
'\" Start box enclosure. From here until next .BE, everything will be
20
'\" enclosed in one large box.
23
'\" End of box enclosure.
26
'\" Begin code excerpt.
32
'\" Begin vertical sidebar, for use in marking newly-changed parts
33
'\" of man pages. If an argument is present, then a line break is
34
'\" forced before starting the sidebar.
37
'\" End of vertical sidebar.
40
'\" Begin an indented unfilled display.
43
'\" End of indented unfilled display.
46
'\" Start of list of standard options for a Tk widget. The
47
'\" options follow on successive lines, in four columns separated
51
'\" End of list of standard options for a Tk widget.
53
'\" .OP cmdName dbName dbClass
54
'\" Start of description of a specific option. cmdName gives the
55
'\" option's name as specified in the class command, dbName gives
56
'\" the option's name in the option database, and dbClass gives
57
'\" the option's class in the option database.
60
'\" Print arg1 underlined, then print arg2 normally.
62
'\" SCCS: @(#) man.macros 1.8 96/02/15 20:02:24
64
'\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
68
'\" # Start an argument description
72
. ie !"\\$2"" .TP \\n()Cu
77
\&\\$1 \\fI\\$2\\fP (\\$3)
90
'\" # define tabbing values for .AP
93
.if !"\\$1"" .nr )A \\w'\\$1'u+3n
96
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
97
.nr )C \\n()Bu+\\w'(in/out)'u+2n
99
.AS Tcl_Interp Tcl_CreateInterp in/out
100
'\" # BS \- start boxed text
101
'\" # ^y = starting y location
109
.if n \l'\\n(.lu\(ul'
112
'\" # BE \- end boxed text (draw box now)
117
.ie n \l'\\n(^lu\(ul'
119
.\" Draw four-sided box normally, but don't draw top of
120
.\" box if the box started on an earlier page.
122
\h'\-1.5n'\L'|\\n(^yu\-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v\-\\n(^yu'\l'|0u\-1.5n\(ul'
125
\h'\-1.5n'\L'|\\n(^yu\-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v\-\\n(^yu'\l'|0u\-1.5n\(ul'
132
'\" # VS \- start vertical sidebar
133
'\" # ^Y = starting y location
134
'\" # ^v = 1 (for troff; for nroff this doesn't matter)
138
.ie n 'mc \s12\(br\s0
141
'\" # VE \- end of vertical sidebar
149
\h'|\\n(^lu+3n'\L'|\\n(^Yu\-1v\(bv'\v'\\n(^tu+1v\-\\n(^Yu'\h'\-|\\n(^lu+3n'
156
'\" # Special macro to handle page bottom: finish off current
157
'\" # box/sidebar if in box/sidebar mode, then invoked standard
158
'\" # page bottom macro.
165
.\" Draw three-sided box if this is the box's first page,
166
.\" draw two sides but no top otherwise.
167
.ie !\\n(^b\-1 \h'\-1.5n'\L'|\\n(^yu\-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v\-\\n(^yu'\h'|0u'\c
168
.el \h'\-1.5n'\L'|\\n(^yu\-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v\-\\n(^yu'\h'|0u'\c
171
.nr ^x \\n(^tu+1v\-\\n(^Yu
172
\kx\h'\-\\nxu'\h'|\\n(^lu+3n'\ky\L'\-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
185
'\" # DS \- begin display
191
'\" # DE \- end display
197
'\" # SO \- start of list of standard options
199
.SH "STANDARD OPTIONS"
205
'\" # SE \- end of list of standard options
210
See the \\fBoptions\\fR manual entry for details on the standard options.
212
'\" # OP \- start of full description for a single option
217
Command\-Line Name: \\fB\\$1\\fR
218
Database Name: \\fB\\$2\\fR
219
Database Class: \\fB\\$3\\fR
223
'\" # CS \- begin code excerpt
229
'\" # CE \- end code excerpt
238
.TH tkspline n 8.0 Tk "Tk Spline \- An additional smoothing method for canvas items "
240
'\" Note: do not modify the .SH NAME line immediately below!
242
\fBspline\fR, \- additional smoothing method for canvas items.
245
package require Tkspline
247
.c create line ... \-smooth spline ...
248
.c create polygon ... \-smooth spline ...
253
The new option value: \fB\-smooth spline\fR provides an additional smoothing method to
254
\fBline\fR and \fBpolygon\fR canvas items.
257
Spline smoothing will revert to the builtin smoothing method unless the number
258
of points is 3n+1, where n is the number of spline segments.
259
(Normally in polygons this means 3n points because the last point of the spline
260
is understood to be the same as the first in order to close the polygon).
263
In \fBline\fR and \fBpolygon\fR items, the curves generated with the standard
264
\fB\-smooth true\fR option have the following properties:
267
the curve is always tangential to a straight line between consecutive points.
270
the curve is only guaranteed to intersect the first and last points of \fBline\fRs.
273
the curve is not guaranteed to intersect any points of \fBpolygon\fRs.
276
With \fB\-smooth spline\fR (and the right number of coordinates)
277
the curves generated have the following different properties:
280
the curve is guaranteed to intersect the first point, and every third point after that.
283
each segment of the curve shares endpoints with the adjacent segments,
284
but is otherwise independant of them.
287
the curve is guaranteed to be tangential to a line between n and n+1 at
288
point n, and also to a line between n+2 and n+3 at point n+3.
291
the curve is not guaranteed to be smooth at the junctions between
292
segments unless the shared point and the points either side of it are
296
These alternative properties are useful to some path planning algorithms.
299
The underlying Bezier code is in John Ousterhout's original
300
canvas widget, this extension just provides an alternate interface
301
to it. The hooks into the canvas are provided by Jan Nijtmans in
305
spline, line, polygon, bezier, canvas, widget
308
John Ellson, ellson@graphviz.org