本文整理汇总了C++中Graphics_setInner函数的典型用法代码示例。如果您正苦于以下问题:C++ Graphics_setInner函数的具体用法?C++ Graphics_setInner怎么用?C++ Graphics_setInner使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Graphics_setInner函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Formant_drawTracks
void Formant_drawTracks (Formant me, Graphics g, double tmin, double tmax, double fmax, int garnish) {
long itmin, itmax, ntrack = Formant_getMinNumFormants (me);
if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }
if (! Sampled_getWindowSamples (me, tmin, tmax, & itmin, & itmax)) return;
Graphics_setInner (g);
Graphics_setWindow (g, tmin, tmax, 0.0, fmax);
for (long itrack = 1; itrack <= ntrack; itrack ++) {
for (long iframe = itmin; iframe < itmax; iframe ++) {
Formant_Frame curFrame = & my d_frames [iframe], nextFrame = & my d_frames [iframe + 1];
double x1 = Sampled_indexToX (me, iframe), x2 = Sampled_indexToX (me, iframe + 1);
double f1 = curFrame -> formant [itrack]. frequency;
double f2 = nextFrame -> formant [itrack]. frequency;
if (NUMdefined (x1) && NUMdefined (f1) && NUMdefined (x2) && NUMdefined (f2))
Graphics_line (g, x1, f1, x2, f2);
}
}
Graphics_unsetInner (g);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_textBottom (g, 1, U"Time (s)");
Graphics_textLeft (g, 1, U"Formant frequency (Hz)");
Graphics_marksBottom (g, 2, 1, 1, 0);
Graphics_marksLeftEvery (g, 1.0, 1000.0, 1, 1, 1);
}
}
示例2: TableOfReal_drawAsNumbers
void TableOfReal_drawAsNumbers (TableOfReal me, Graphics graphics, long rowmin, long rowmax, int iformat, int precision) {
fixRows (me, & rowmin, & rowmax);
Graphics_setInner (graphics);
Graphics_setWindow (graphics, 0.5, my numberOfColumns + 0.5, 0, 1);
double leftMargin = getLeftMargin (graphics); // not earlier!
double lineSpacing = getLineSpacing (graphics); // not earlier!
double maxTextWidth = getMaxRowLabelWidth (me, graphics, rowmin, rowmax);
double maxTextHeight = getMaxColumnLabelHeight (me, graphics, 1, my numberOfColumns);
Graphics_setTextAlignment (graphics, Graphics_CENTRE, Graphics_BOTTOM);
for (long icol = 1; icol <= my numberOfColumns; icol ++) {
if (my columnLabels && my columnLabels [icol] && my columnLabels [icol] [0])
Graphics_text (graphics, icol, 1, my columnLabels [icol]);
}
for (long irow = rowmin; irow <= rowmax; irow ++) {
double y = 1 - lineSpacing * (irow - rowmin + 0.6);
Graphics_setTextAlignment (graphics, Graphics_RIGHT, Graphics_HALF);
if (my rowLabels && my rowLabels [irow] && my rowLabels [irow] [0])
Graphics_text (graphics, 0.5 - leftMargin, y, my rowLabels [irow]);
Graphics_setTextAlignment (graphics, Graphics_CENTRE, Graphics_HALF);
for (long icol = 1; icol <= my numberOfColumns; icol ++) {
wchar_t text [40];
print4 (text, my data [irow] [icol], iformat, 0, precision);
Graphics_text (graphics, icol, y, text);
}
}
if (maxTextHeight) {
double left = 0.5;
if (maxTextWidth > 0.0) left -= maxTextWidth + 2 * leftMargin;
Graphics_line (graphics, left, 1, my numberOfColumns + 0.5, 1);
}
Graphics_unsetInner (graphics);
}
示例3: cellArrayOrImage
static void cellArrayOrImage (Matrix me, Graphics g, double xmin, double xmax, double ymin, double ymax,
double minimum, double maximum, bool interpolate)
{
if (xmax <= xmin) { xmin = my xmin; xmax = my xmax; }
if (ymax <= ymin) { ymin = my ymin; ymax = my ymax; }
long ixmin, ixmax, iymin, iymax;
(void) Matrix_getWindowSamplesX (me, xmin - 0.49999 * my dx, xmax + 0.49999 * my dx,
& ixmin, & ixmax);
(void) Matrix_getWindowSamplesY (me, ymin - 0.49999 * my dy, ymax + 0.49999 * my dy,
& iymin, & iymax);
if (maximum <= minimum)
(void) Matrix_getWindowExtrema (me, ixmin, ixmax, iymin, iymax, & minimum, & maximum);
if (maximum <= minimum) { minimum -= 1.0; maximum += 1.0; }
if (xmin >= xmax || ymin >= ymax) return;
Graphics_setInner (g);
Graphics_setWindow (g, xmin, xmax, ymin, ymax);
if (interpolate)
Graphics_image (g, my z,
ixmin, ixmax, Sampled_indexToX (me, ixmin - 0.5), Sampled_indexToX (me, ixmax + 0.5),
iymin, iymax, SampledXY_indexToY (me, iymin - 0.5), SampledXY_indexToY (me, iymax + 0.5),
minimum, maximum);
else
Graphics_cellArray (g, my z,
ixmin, ixmax, Sampled_indexToX (me, ixmin - 0.5), Sampled_indexToX (me, ixmax + 0.5),
iymin, iymax, SampledXY_indexToY (me, iymin - 0.5), SampledXY_indexToY (me, iymax + 0.5),
minimum, maximum);
Graphics_rectangle (g, xmin, xmax, ymin, ymax);
Graphics_unsetInner (g);
}
示例4: Formant_scatterPlot
void Formant_scatterPlot (Formant me, Graphics g, double tmin, double tmax,
int iformant1, double fmin1, double fmax1, int iformant2, double fmin2, double fmax2,
double size_mm, const char32 *mark, int garnish)
{
if (iformant1 < 1 || iformant2 < 1) return;
if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }
long itmin, itmax;
if (! Sampled_getWindowSamples (me, tmin, tmax, & itmin, & itmax)) return;
if (fmax1 == fmin1)
Formant_getExtrema (me, iformant1, tmin, tmax, & fmin1, & fmax1);
if (fmax1 == fmin1) return;
if (fmax2 == fmin2)
Formant_getExtrema (me, iformant2, tmin, tmax, & fmin2, & fmax2);
if (fmax2 == fmin2) return;
Graphics_setInner (g);
Graphics_setWindow (g, fmin1, fmax1, fmin2, fmax2);
for (long iframe = itmin; iframe <= itmax; iframe ++) {
Formant_Frame frame = & my d_frames [iframe];
if (iformant1 > frame -> nFormants || iformant2 > frame -> nFormants) continue;
double x = frame -> formant [iformant1]. frequency;
double y = frame -> formant [iformant2]. frequency;
if (x == 0.0 || y == 0.0) continue;
Graphics_mark (g, x, y, size_mm, mark);
}
Graphics_unsetInner (g);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_textBottom (g, 1, Melder_cat (U"%%F_", iformant1, U" (Hz)"));
Graphics_textLeft (g, 1, Melder_cat (U"%%F_", iformant2, U" (Hz)"));
Graphics_marksBottom (g, 2, 1, 1, 0);
Graphics_marksLeft (g, 2, 1, 1, 0);
}
}
示例5: Minimizer_drawHistory
void Minimizer_drawHistory (Minimizer me, Graphics g, long iFrom, long iTo, double hmin, double hmax, int garnish) {
if (! my history) {
return;
}
if (iTo <= iFrom) {
iFrom = 1; iTo = my iteration;
}
long itmin = iFrom, itmax = iTo;
if (itmin < 1) {
itmin = 1;
}
if (itmax > my iteration) {
itmax = my iteration;
}
if (hmax <= hmin) {
NUMvector_extrema (my history, itmin, itmax, & hmin, & hmax);
}
if (hmax <= hmin) {
hmin -= 0.5 * fabs (hmin);
hmax += 0.5 * fabs (hmax);
}
Graphics_setInner (g);
Graphics_setWindow (g, iFrom, iTo, hmin, hmax);
Graphics_function (g, my history, itmin, itmax, itmin, itmax);
Graphics_unsetInner (g);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_textBottom (g, true, U"Number of iterations");
Graphics_marksBottom (g, 2, true, true, false);
Graphics_marksLeft (g, 2, true, true, false);
}
}
示例6: Matrix_drawSliceY
void Matrix_drawSliceY (Matrix me, Graphics g, double x, double ymin, double ymax, double min, double max) {
if (x < my xmin || x > my xmax) {
return;
}
long ix = Matrix_xToNearestColumn (me, x);
if (ymax <= ymin) {
ymin = my ymin;
ymax = my ymax;
}
long iymin, iymax;
long ny = Matrix_getWindowSamplesY (me, ymin, ymax, &iymin, &iymax);
if (ny < 1) {
return;
}
if (max <= min) {
Matrix_getWindowExtrema (me, ix, ix, iymin, iymax, &min, &max);
}
if (max <= min) {
min -= 0.5; max += 0.5;
}
autoNUMvector<double> y (iymin, iymax);
Graphics_setWindow (g, ymin, ymax, min, max);
Graphics_setInner (g);
for (long i = iymin; i <= iymax; i++) {
y[i] = my z[i][ix];
}
Graphics_function (g, y.peek(), iymin, iymax, Matrix_rowToY (me, iymin), Matrix_rowToY (me, iymax));
Graphics_unsetInner (g);
}
示例7: Polygon_paint
void Polygon_paint (Polygon me, Graphics g, Graphics_Colour colour, double xmin, double xmax, double ymin, double ymax) {
Graphics_setInner (g);
setWindow (me, g, xmin, xmax, ymin, ymax);
Graphics_setColour (g, colour);
Graphics_fillArea (g, my numberOfPoints, & my x [1], & my y [1]);
Graphics_unsetInner (g);
}
示例8: Transition_drawAsNumbers
void Transition_drawAsNumbers (I, Graphics g, int iformat, int precision) {
iam (Transition);
double maxTextWidth = 0, maxTextHeight = 0;
Graphics_setInner (g);
Graphics_setWindow (g, 0.5, my numberOfStates + 0.5, 0, 1);
double leftMargin = Graphics_dxMMtoWC (g, 1);
double lineSpacing = Graphics_dyMMtoWC (g, 1.5 * Graphics_inqFontSize (g) * 25.4 / 72);
Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_BOTTOM);
for (long col = 1; col <= my numberOfStates; col ++) {
if (my stateLabels && my stateLabels [col] && my stateLabels [col] [0]) {
Graphics_text (g, col, 1, my stateLabels [col]);
if (! maxTextHeight) maxTextHeight = lineSpacing;
}
}
for (long row = 1; row <= my numberOfStates; row ++) {
double y = 1 - lineSpacing * (row - 1 + 0.7);
Graphics_setTextAlignment (g, Graphics_RIGHT, Graphics_HALF);
if (my stateLabels && my stateLabels [row]) {
double textWidth = Graphics_textWidth (g, my stateLabels [row]);
if (textWidth > maxTextWidth) maxTextWidth = textWidth;
Graphics_text (g, 0.5 - leftMargin, y, my stateLabels [row]);
}
Graphics_setTextAlignment (g, Graphics_CENTRE, Graphics_HALF);
for (long col = 1; col <= my numberOfStates; col ++) {
wchar text [40];
print4 (text, my data [row] [col], iformat, 0, precision);
Graphics_text (g, col, y, text);
}
}
if (maxTextWidth)
Graphics_line (g, 0.5 - maxTextWidth - leftMargin, 1, my numberOfStates + 0.5, 1);
if (maxTextHeight)
Graphics_line (g, 0.5, 1 + maxTextHeight, 0.5, 1 - lineSpacing * (my numberOfStates + 0.2));
Graphics_unsetInner (g);
}
示例9: TextGrid_Pitch_draw
void TextGrid_Pitch_draw (TextGrid grid, Pitch pitch, Graphics g,
long tierNumber, double tmin, double tmax, double fmin, double fmax,
double fontSize, int useTextStyles, int horizontalAlignment, int garnish, int speckle, int unit)
{
try {
TextGrid_checkSpecifiedTierNumberWithinRange (grid, tierNumber);
double oldFontSize = Graphics_inqFontSize (g);
Pitch_draw (pitch, g, tmin, tmax, fmin, fmax, garnish, speckle, unit);
if (tmax <= tmin) tmin = grid -> xmin, tmax = grid -> xmax;
autoPitchTier pitchTier = Pitch_to_PitchTier (pitch);
if (Function_isUnitLogarithmic (pitch, Pitch_LEVEL_FREQUENCY, unit)) {
fmin = Function_convertStandardToSpecialUnit (pitch, fmin, Pitch_LEVEL_FREQUENCY, unit);
fmax = Function_convertStandardToSpecialUnit (pitch, fmax, Pitch_LEVEL_FREQUENCY, unit);
}
Graphics_setTextAlignment (g, horizontalAlignment, Graphics_BOTTOM);
Graphics_setInner (g);
Graphics_setFontSize (g, fontSize);
Graphics_setPercentSignIsItalic (g, useTextStyles);
Graphics_setNumberSignIsBold (g, useTextStyles);
Graphics_setCircumflexIsSuperscript (g, useTextStyles);
Graphics_setUnderscoreIsSubscript (g, useTextStyles);
Function anyTier = (Function) grid -> tiers -> item [tierNumber];
if (anyTier -> classInfo == classIntervalTier) {
IntervalTier tier = (IntervalTier) anyTier;
for (long i = 1; i <= tier -> intervals -> size; i ++) {
TextInterval interval = (TextInterval) tier -> intervals -> item [i];
double tleft = interval -> xmin, tright = interval -> xmax, tmid, f0;
if (! interval -> text || ! interval -> text [0]) continue;
if (tleft < pitch -> xmin) tleft = pitch -> xmin;
if (tright > pitch -> xmax) tright = pitch -> xmax;
tmid = (tleft + tright) / 2;
if (tmid < tmin || tmid > tmax) continue;
f0 = Function_convertStandardToSpecialUnit (pitch, RealTier_getValueAtTime (pitchTier.peek(), tmid), Pitch_LEVEL_FREQUENCY, unit);
if (f0 < fmin || f0 > fmax) continue;
Graphics_text (g,
horizontalAlignment == Graphics_LEFT ? tleft : horizontalAlignment == Graphics_RIGHT ? tright : tmid,
f0, interval -> text);
}
} else {
TextTier tier = (TextTier) anyTier;
for (long i = 1; i <= tier -> points -> size; i ++) {
TextPoint point = (TextPoint) tier -> points -> item [i];
double t = point -> number, f0;
if (! point -> mark || ! point -> mark [0]) continue;
if (t < tmin || t > tmax) continue;
f0 = Function_convertStandardToSpecialUnit (pitch, RealTier_getValueAtTime (pitchTier.peek(), t), Pitch_LEVEL_FREQUENCY, unit);
if (f0 < fmin || f0 > fmax) continue;
Graphics_text (g, t, f0, point -> mark);
}
}
Graphics_setPercentSignIsItalic (g, TRUE);
Graphics_setNumberSignIsBold (g, TRUE);
Graphics_setCircumflexIsSuperscript (g, TRUE);
Graphics_setUnderscoreIsSubscript (g, TRUE);
Graphics_setFontSize (g, oldFontSize);
Graphics_unsetInner (g);
} catch (MelderError) {
Melder_throw (grid, " & ", pitch, ": not drawn.");
}
}
示例10: CC_drawC0
void CC_drawC0 (I, Graphics g, double xmin, double xmax, double ymin,
double ymax, int garnish) {
iam (CC);
(void) garnish;
if (xmin >= xmax) {
xmin = my xmin; xmax = my xmax;
}
long bframe, eframe;
(void) Sampled_getWindowSamples (me, xmin, xmax, &bframe, &eframe);
autoNUMvector<double> c (bframe, eframe);
for (long i = bframe; i <= eframe; i++) {
CC_Frame cf = & my frame[i];
c[i] = cf -> c0;
}
if (ymin >= ymax) {
NUMvector_extrema (c.peek(), bframe, eframe, &ymin, &ymax);
if (ymax <= ymin) {
ymin -= 1.0;
ymax += 1.0;
}
} else {
NUMvector_clip (c.peek(), bframe, eframe, ymin, ymax);
}
Graphics_setInner (g);
Graphics_setWindow (g, xmin, xmax, ymin, ymax);
Graphics_function (g, c.peek(), bframe, eframe, xmin, xmax);
Graphics_unsetInner (g);
}
示例11: FilterBank_paint
void FilterBank_paint (FilterBank me, Graphics g, double xmin, double xmax, double ymin, double ymax, double minimum, double maximum, int garnish) {
if (xmax <= xmin) {
xmin = my xmin; xmax = my xmax;
}
if (ymax <= ymin) {
ymin = my ymin; ymax = my ymax;
}
long ixmin, ixmax, iymin, iymax;
(void) Matrix_getWindowSamplesX (me, xmin - 0.49999 * my dx, xmax + 0.49999 * my dx, &ixmin, &ixmax);
(void) Matrix_getWindowSamplesY (me, ymin - 0.49999 * my dy, ymax + 0.49999 * my dy, &iymin, &iymax);
if (maximum <= minimum) {
(void) Matrix_getWindowExtrema (me, ixmin, ixmax, iymin, iymax, &minimum, &maximum);
}
if (maximum <= minimum) {
minimum -= 1.0; maximum += 1.0;
}
if (xmin >= xmax || ymin >= ymax) {
return;
}
Graphics_setInner (g);
Graphics_setWindow (g, xmin, xmax, ymin, ymax);
Graphics_image (g, my z,
ixmin, ixmax, Sampled_indexToX (me, ixmin - 0.5), Sampled_indexToX (me, ixmax + 0.5),
iymin, iymax, SampledXY_indexToY (me, iymin - 0.5), SampledXY_indexToY (me, iymax + 0.5),
minimum, maximum);
Graphics_unsetInner (g);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_marksLeft (g, 2, 1, 1, 0);
Graphics_textLeft (g, 1, GetFreqScaleText (my v_getFrequencyScale ()));
Graphics_marksBottom (g, 2, 1, 1, 0);
Graphics_textBottom (g, 1, U"Time (s)");
}
}
示例12: FormantFilter_drawFilterFunctions
void FormantFilter_drawFilterFunctions (FormantFilter me, Graphics g, double bandwidth,
int toFreqScale, int fromFilter, int toFilter, double zmin, double zmax,
int dbScale, double ymin, double ymax, int garnish) {
if (! checkLimits (me, FilterBank_HERTZ, toFreqScale, & fromFilter, & toFilter,
& zmin, & zmax, dbScale, & ymin, & ymax)) {
return;
}
if (bandwidth <= 0) {
Melder_warning (U"Bandwidth must be greater than zero.");
}
long n = 1000;
autoNUMvector<double>a (1, n);
Graphics_setInner (g);
Graphics_setWindow (g, zmin, zmax, ymin, ymax);
for (long j = fromFilter; j <= toFilter; j++) {
double df = (zmax - zmin) / (n - 1);
double fc = my y1 + (j - 1) * my dy;
long ibegin, iend;
for (long i = 1; i <= n; i++) {
double f = zmin + (i - 1) * df;
double z = scaleFrequency (f, toFreqScale, FilterBank_HERTZ);
if (z == NUMundefined) {
a[i] = NUMundefined;
} else {
a[i] = NUMformantfilter_amplitude (fc, bandwidth, z);
if (dbScale) {
a[i] = to_dB (a[i], 10, ymin);
}
}
}
setDrawingLimits (a.peek(), n, ymin, ymax, &ibegin, &iend);
if (ibegin <= iend) {
double fmin = zmin + (ibegin - 1) * df;
double fmax = zmax - (n - iend) * df;
Graphics_function (g, a.peek(), ibegin, iend, fmin, fmax);
}
}
Graphics_unsetInner (g);
if (garnish) {
double distance = dbScale ? 10 : 1;
char32 const *ytext = dbScale ? U"Amplitude (dB)" : U"Amplitude";
Graphics_drawInnerBox (g);
Graphics_marksBottom (g, 2, 1, 1, 0);
Graphics_marksLeftEvery (g, 1, distance, 1, 1, 0);
Graphics_textLeft (g, 1, ytext);
Graphics_textBottom (g, 1, GetFreqScaleText (toFreqScale));
}
}
示例13: Polygon_paintCircles
void Polygon_paintCircles (Polygon me, Graphics g,
double xmin, double xmax, double ymin, double ymax, double diameter)
{
Graphics_setInner (g);
setWindow (me, g, xmin, xmax, ymin, ymax);
for (long i = 1; i <= my numberOfPoints; i ++)
Graphics_fillCircle_mm (g, my x [i], my y [i], diameter);
Graphics_unsetInner (g);
}
示例14: Polygon_drawMarks
void Polygon_drawMarks (Polygon me, Graphics g, double xmin, double xmax,
double ymin, double ymax, double size_mm, const wchar_t *mark) {
Graphics_setInner (g);
setWindow (me, g, xmin, xmax, ymin, ymax);
for (long i = 1; i <= my numberOfPoints; i++) {
Graphics_mark (g, my x[i], my y[i], size_mm, mark);
}
Graphics_unsetInner (g);
}
示例15: MelFilter_drawFilterFunctions
void MelFilter_drawFilterFunctions (MelFilter me, Graphics g,
int toFreqScale, int fromFilter, int toFilter, double zmin, double zmax,
int dbScale, double ymin, double ymax, int garnish) {
if (! checkLimits (me, FilterBank_MEL, toFreqScale, & fromFilter, & toFilter,
& zmin, & zmax, dbScale, & ymin, & ymax)) {
return;
}
long n = 1000;
autoNUMvector<double> a (1, n);
Graphics_setInner (g);
Graphics_setWindow (g, zmin, zmax, ymin, ymax);
for (long j = fromFilter; j <= toFilter; j++) {
double df = (zmax - zmin) / (n - 1);
double fc_mel = my y1 + (j - 1) * my dy;
double fc_hz = MELTOHZ (fc_mel);
double fl_hz = MELTOHZ (fc_mel - my dy);
double fh_hz = MELTOHZ (fc_mel + my dy);
long ibegin, iend;
for (long i = 1; i <= n; i++) {
// Filterfunction: triangular on a linear frequency scale AND a linear amplitude scale.
double f = zmin + (i - 1) * df;
double z = scaleFrequency (f, toFreqScale, FilterBank_HERTZ);
if (z == NUMundefined) {
a[i] = NUMundefined;
} else {
a[i] = NUMtriangularfilter_amplitude (fl_hz, fc_hz, fh_hz, z);
if (dbScale) {
a[i] = to_dB (a[i], 10, ymin);
}
}
}
setDrawingLimits (a.peek(), n, ymin, ymax, &ibegin, &iend);
if (ibegin <= iend) {
double fmin = zmin + (ibegin - 1) * df;
double fmax = zmax - (n - iend) * df;
Graphics_function (g, a.peek(), ibegin, iend, fmin, fmax);
}
}
Graphics_unsetInner (g);
if (garnish) {
double distance = dbScale ? 10 : 1;
char32 const *ytext = dbScale ? U"Amplitude (dB)" : U"Amplitude";
Graphics_drawInnerBox (g);
Graphics_marksBottom (g, 2, 1, 1, 0);
Graphics_marksLeftEvery (g, 1, distance, 1, 1, 0);
Graphics_textLeft (g, 1, ytext);
Graphics_textBottom (g, 1, GetFreqScaleText (toFreqScale));
}
}