本文整理汇总了C++中Graphics_marksBottom函数的典型用法代码示例。如果您正苦于以下问题:C++ Graphics_marksBottom函数的具体用法?C++ Graphics_marksBottom怎么用?C++ Graphics_marksBottom使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Graphics_marksBottom函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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);
}
}
示例2: 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)");
}
}
示例3: 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, true, Melder_cat (U"%%F_", iformant1, U" (Hz)"));
Graphics_textLeft (g, true, Melder_cat (U"%%F_", iformant2, U" (Hz)"));
Graphics_marksBottom (g, 2, true, true, false);
Graphics_marksLeft (g, 2, true, true, false);
}
}
示例4: 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, true, U"Time (s)");
Graphics_textLeft (g, true, U"Formant frequency (Hz)");
Graphics_marksBottom (g, 2, true, true, false);
Graphics_marksLeftEvery (g, 1.0, 1000.0, true, true, true);
}
}
示例5: Pattern_draw
void Pattern_draw (Pattern me, Graphics g, long pattern, double xmin, double xmax, double ymin, double ymax, int garnish) {
Matrix_drawRows (me, g, xmin, xmax, pattern - 0.5, pattern + 0.5, ymin, ymax);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_marksBottom (g, 2, true, true, false);
Graphics_marksLeft (g, 2, true, true, false);
}
}
示例6: 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));
}
}
示例7: 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));
}
}
示例8: PowerCepstrogram_paint
void PowerCepstrogram_paint (PowerCepstrogram me, Graphics g, double tmin, double tmax, double qmin, double qmax, double dBmaximum, int autoscaling, double dynamicRangedB, double dynamicCompression, int garnish) {
if (tmax <= tmin) { tmin = my xmin; tmax = my xmax; }
if (qmax <= qmin) { qmin = my ymin; qmax = my ymax; }
long itmin, itmax, ifmin, ifmax;
if (! Matrix_getWindowSamplesX (me, tmin - 0.49999 * my dx, tmax + 0.49999 * my dx, & itmin, & itmax) ||
! Matrix_getWindowSamplesY (me, qmin - 0.49999 * my dy, qmax + 0.49999 * my dy, & ifmin, & ifmax)) {
return;
}
autoMatrix thee = Data_copy (me);
double min = 1e308, max = -min;
for (long i = 1; i <= my ny; i++) {
for (long j = 1; j <= my nx; j++) {
double val = TO10LOG (my z[i][j]);
min = val < min ? val : min;
max = val > max ? val : max;
thy z[i][j] = val;
}
}
double dBminimum = dBmaximum - dynamicRangedB;
if (autoscaling) {
dBminimum = min; dBmaximum = max;
}
for (long j = 1; j <= my nx; j++) {
double lmax = thy z[1][j];
for (long i = 2; i <= my ny; i++) {
if (thy z[i][j] > lmax) {
lmax = thy z[i][j];
}
}
double factor = dynamicCompression * (max - lmax);
for (long i = 1; i <= my ny; i++) {
thy z[i][j] += factor;
}
}
Graphics_setInner (g);
Graphics_setWindow (g, tmin, tmax, qmin, qmax);
Graphics_image (g, thy z,
itmin, itmax,
Matrix_columnToX (thee.get(), itmin - 0.5),
Matrix_columnToX (thee.get(), itmax + 0.5),
ifmin, ifmax,
Matrix_rowToY (thee.get(), ifmin - 0.5),
Matrix_rowToY (thee.get(), ifmax + 0.5),
dBminimum, dBmaximum);
Graphics_unsetInner (g);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_textBottom (g, true, U"Time (s)");
Graphics_marksBottom (g, 2, true, true, false);
Graphics_marksLeft (g, 2, true, true, false);
Graphics_textLeft (g, true, U"Quefrency (s)");
}
}
示例9: FilterBank_drawFrequencyScales
void FilterBank_drawFrequencyScales (I, Graphics g, int horizontalScale, double xmin,
double xmax, int verticalScale, double ymin, double ymax, int garnish) {
iam (FilterBank);
int myFreqScale = FilterBank_getFrequencyScale (me);
if (xmin < 0 || xmax < 0 || ymin < 0 || ymax < 0) {
Melder_warning (U"Frequencies must be >= 0.");
return;
}
if (xmin >= xmax) {
double xmint = my ymin;
double xmaxt = my ymax;
if (ymin < ymax) {
xmint = scaleFrequency (ymin, verticalScale, myFreqScale);
xmaxt = scaleFrequency (ymax, verticalScale, myFreqScale);
}
xmin = scaleFrequency (xmint, myFreqScale, horizontalScale);
xmax = scaleFrequency (xmaxt, myFreqScale, horizontalScale);
}
if (ymin >= ymax) {
ymin = scaleFrequency (xmin, horizontalScale, verticalScale);
ymax = scaleFrequency (xmax, horizontalScale, verticalScale);
}
long n = 2000;
autoNUMvector<double> a (1, n);
Graphics_setInner (g);
Graphics_setWindow (g, xmin, xmax, ymin, ymax);
double df = (xmax - xmin) / (n - 1);
for (long i = 1; i <= n; i++) {
double f = xmin + (i - 1) * df;
a[i] = scaleFrequency (f, horizontalScale, verticalScale);
}
long ibegin, iend;
setDrawingLimits (a.peek(), n, ymin, ymax, & ibegin, & iend);
if (ibegin <= iend) {
double fmin = xmin + (ibegin - 1) * df;
double fmax = xmax - (n - iend) * df;
Graphics_function (g, a.peek(), ibegin, iend, fmin, fmax);
}
Graphics_unsetInner (g);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_marksLeft (g, 2, 1, 1, 0);
Graphics_textLeft (g, 1, GetFreqScaleText (verticalScale));
Graphics_marksBottom (g, 2, 1, 1, 0);
Graphics_textBottom (g, 1, GetFreqScaleText (horizontalScale));
}
}
示例10: Ltas_draw
void Ltas_draw (Ltas me, Graphics g, double fmin, double fmax, double minimum, double maximum, int garnish, const wchar *method) {
Vector_draw (me, g, & fmin, & fmax, & minimum, & maximum, 1.0, method);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_textBottom (g, 1, L"Frequency (Hz)");
Graphics_marksBottom (g, 2, 1, 1, 0);
Graphics_textLeft (g, 1, L"Sound pressure level (dB/Hz)");
Graphics_marksLeft (g, 2, 1, 1, 0);
}
}
示例11: BarkFilter_drawSekeyHansonFilterFunctions
void BarkFilter_drawSekeyHansonFilterFunctions (BarkFilter 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_BARK, 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 zMid = Matrix_rowToY (me, j);
long ibegin, iend;
for (long i = 1; i <= n; i++) {
double f = zmin + (i - 1) * df;
double z = scaleFrequency (f, toFreqScale, FilterBank_BARK);
if (z == NUMundefined) {
a[i] = NUMundefined;
} else {
z -= zMid + 0.215;
a[i] = 7 - 7.5 * z - 17.5 * sqrt (0.196 + z * z);
if (! dbScale) {
a[i] = pow (10, a[i]);
}
}
}
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;
const char32 *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));
}
}
示例12: LogisticRegression_drawBoundary
void LogisticRegression_drawBoundary (LogisticRegression me, Graphics graphics, long colx, double xleft, double xright,
long coly, double ybottom, double ytop, bool garnish)
{
RegressionParameter parmx = static_cast<RegressionParameter> (my parameters -> item [colx]);
RegressionParameter parmy = static_cast<RegressionParameter> (my parameters -> item [coly]);
if (xleft == xright) {
xleft = parmx -> minimum;
xright = parmx -> maximum;
}
if (ybottom == ytop) {
ybottom = parmy -> minimum;
ytop = parmy -> maximum;
}
double intercept = my intercept;
for (long iparm = 1; iparm <= my parameters -> size; iparm ++) {
if (iparm != colx && iparm != coly) {
RegressionParameter parm = static_cast<RegressionParameter> (my parameters -> item [iparm]);
intercept += parm -> value * (0.5 * (parm -> minimum + parm -> maximum));
}
}
Graphics_setInner (graphics);
Graphics_setWindow (graphics, xleft, xright, ybottom, ytop);
double xbottom = (intercept + parmy -> value * ybottom) / - parmx -> value;
double xtop = (intercept + parmy -> value * ytop) / - parmx -> value;
double yleft = (intercept + parmx -> value * xleft) / - parmy -> value;
double yright = (intercept + parmx -> value * xright) / - parmy -> value;
double xmin = NUMmin2 (xleft, xright), xmax = NUMmax2 (xleft, xright);
double ymin = NUMmin2 (ybottom, ytop), ymax = NUMmax2 (ybottom, ytop);
//Melder_casual ("LogisticRegression_drawBoundary: %f %f %f %f %f %f %f %f",
// xmin, xmax, xbottom, xtop, ymin, ymax, yleft, yright);
if (xbottom >= xmin && xbottom <= xmax) { // line goes through bottom?
if (xtop >= xmin && xtop <= xmax) // line goes through top?
Graphics_line (graphics, xbottom, ybottom, xtop, ytop); // draw from bottom to top
else if (yleft >= ymin && yleft <= ymax) // line goes through left?
Graphics_line (graphics, xbottom, ybottom, xleft, yleft); // draw from bottom to left
else if (yright >= ymin && yright <= ymax) // line goes through right?
Graphics_line (graphics, xbottom, ybottom, xright, yright); // draw from bottom to right
} else if (yleft >= ymin && yleft <= ymax) { // line goes through left?
if (yright >= ymin && yright <= ymax) // line goes through right?
Graphics_line (graphics, xleft, yleft, xright, yright); // draw from left to right
else if (xtop >= xmin && xtop <= xmax) // line goes through top?
Graphics_line (graphics, xleft, yleft, xtop, ytop); // draw from left to top
} else if (xtop >= xmin && xtop <= xmax) { // line goes through top?
if (yright >= ymin && yright <= ymax) // line goes through right?
Graphics_line (graphics, xtop, ytop, xright, yright); // draw from top to right
}
Graphics_unsetInner (graphics);
if (garnish) {
Graphics_drawInnerBox (graphics);
Graphics_textBottom (graphics, true, parmx -> label);
Graphics_marksBottom (graphics, 2, true, true, false);
Graphics_textLeft (graphics, true, parmy -> label);
Graphics_marksLeft (graphics, 2, true, true, false);
}
}
示例13: BandFilterSpectrogram_drawSpectrumAtNearestTimeSlice
void BandFilterSpectrogram_drawSpectrumAtNearestTimeSlice (BandFilterSpectrogram me, Graphics g, double time, double fmin, double fmax, double dBmin, double dBmax, int garnish) {
if (time < my xmin || time > my xmax) {
return;
}
if (fmin == 0 && fmax == 0) { // autoscaling
fmin = my ymin; fmax = my ymax;
}
if (fmax <= fmin) {
fmin = my ymin; fmax = my ymax;
}
long icol = Matrix_xToNearestColumn (me, time);
icol = icol < 1 ? 1 : (icol > my nx ? my nx : icol);
autoNUMvector<double> spectrum (1, my ny);
for (long i = 1; i <= my ny; i++) {
spectrum[i] = my v_getValueAtSample (icol, i, 1); // dB's
}
long iymin, iymax;
if (Matrix_getWindowSamplesY (me, fmin, fmax, &iymin, &iymax) < 2) { // too few values
return;
}
if (dBmin == dBmax) { // autoscaling
dBmin = spectrum[iymin]; dBmax = dBmin;
for (long i = iymin + 1; i <= iymax; i++) {
if (spectrum[i] < dBmin) {
dBmin = spectrum[i];
} else if (spectrum[i] > dBmax) {
dBmax = spectrum[i];
}
}
if (dBmin == dBmax) {
dBmin -= 1; dBmax += 1;
}
}
Graphics_setWindow (g, fmin, fmax, dBmin, dBmax);
Graphics_setInner (g);
double x1 = my y1 + (iymin -1) * my dy, y1 = spectrum[iymin];
for (long i = iymin + 1; i <= iymax - 1; i++) {
double x2 = my y1 + (i -1) * my dy, y2 = spectrum[i];
double xo1, yo1, xo2, yo2;
if (NUMclipLineWithinRectangle (x1, y1, x2, y2, fmin, dBmin, fmax, dBmax, &xo1, &yo1, &xo2, &yo2)) {
Graphics_line (g, xo1, yo1, xo2, yo2);
}
x1 = x2; y1 = y2;
}
Graphics_unsetInner (g);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_marksBottom (g, 2, 1, 1, 0);
Graphics_marksLeft (g, 2, 1, 1, 0);
Graphics_textLeft (g, 1, U"Power (dB)");
Graphics_textBottom (g, 1, Melder_cat (U"Frequency (", my v_getFrequencyUnit (), U")"));
}
}
示例14: BandFilterSpectrogram_drawTimeSlice
void BandFilterSpectrogram_drawTimeSlice (BandFilterSpectrogram me, Graphics g, double t, double fmin, double fmax, double min, double max, const char32 *xlabel, int garnish) {
Matrix_drawSliceY (me, g, t, fmin, fmax, min, max);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_marksBottom (g, 2, true, true, false);
Graphics_marksLeft (g, 2, true, true, false);
if (xlabel) {
Graphics_textBottom (g, false, xlabel);
}
}
}
示例15: Spectrum_draw
void Spectrum_draw (Spectrum me, Graphics g, double fmin, double fmax, double minimum, double maximum, int garnish) {
Graphics_setInner (g);
Spectrum_drawInside (me, g, fmin, fmax, minimum, maximum);
Graphics_unsetInner (g);
if (garnish) {
Graphics_drawInnerBox (g);
Graphics_textBottom (g, 1, L"Frequency (Hz)");
Graphics_marksBottom (g, 2, true, true, false);
Graphics_textLeft (g, 1, L"Sound pressure level (dB/Hz)");
Graphics_marksLeftEvery (g, 1.0, 20.0, true, true, false);
}
}