当前位置: 首页>>代码示例>>C++>>正文


C++ Plotter::Draw方法代码示例

本文整理汇总了C++中Plotter::Draw方法的典型用法代码示例。如果您正苦于以下问题:C++ Plotter::Draw方法的具体用法?C++ Plotter::Draw怎么用?C++ Plotter::Draw使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Plotter的用法示例。


在下文中一共展示了Plotter::Draw方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: draw_axes

int draw_axes(Plotter& plot, WorldPt cross, Color col_ax, int ax_thickness,
		float x_tic, float y_tic, bool labels, int width, int prec,
		Color col_lab)
{
	int const EPS = 1.0e-6f;
	int const fontsize = 15;

	float tic_pos;
	float direction;
	float limit;
	float tic_length;

	WorldPt wl;
	WorldPt wu;
	WorldPt p;
	ScrPt pv;

	int labelPixs;

	Color col_prev;
	int thick_prev;

	String str;

	Font my_font;
	if (!my_font.LoadFromFile("FreeMono.ttf", fontsize))
	{
		return EXIT_FAILURE;
	}

	col_prev = plot.get_draw_col();
	plot.set_draw_col(col_ax);
	thick_prev = plot.get_draw_thick();
	plot.set_draw_thick(ax_thickness);

	plot.get_world_ext(wl, wu);

	p.x = wl.x;
	p.y = cross.y;
	plot.move(p);

	p.x = wu.x;
	plot.draw(p);

	p.x = cross.x;
	p.y = wl.y;
	plot.move(p);

	p.y = wu.y;
	plot.draw(p);

	direction = 1.0f;
	limit = wu.x * (1.0f + EPS);

	if (limit == 0.0f)
	{
		limit = EPS * abs(wl.x);
	}
	x_tic = abs(x_tic);
	tic_length = 0.01f * (wu.y - wl.y);

	while (true)
	{
		tic_pos = cross.x + x_tic;
		while (direction * tic_pos <= limit)
		{
			p.x = tic_pos;
			p.y = cross.y;

			if (labels)
			{
				plot.world2scr(p, pv);

				labelPixs = 6 * width * fontsize / 10;
				pv.x -= labelPixs / 2;

				ostringstream ss;
				ss << setw(width) << setprecision(prec) << fixed << right
						<< tic_pos;
				str.SetText(ss.str());
				str.SetFont(my_font);
				str.SetColor(col_lab);
				str.SetSize(fontsize);
				str.SetPosition(pv.x, pv.y);
				plot.Draw(str);
			}

			plot.move(p);
			p.y += tic_length;
			plot.draw(p);
			tic_pos += x_tic;
		}

		if (direction < 0.0f)
		{
			break;
		}

		direction = -1.0f;
		limit = direction * wl.x;
//.........这里部分代码省略.........
开发者ID:broeckho,项目名称:gobelijn,代码行数:101,代码来源:draw_axes.cpp


注:本文中的Plotter::Draw方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。