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


C++ parser::derive方法代码示例

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


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

示例1: plot

void gui::plot(double x1, double x2, double y1, double y2, double gen, parser term, bool diff, bool tay){	
	//Optimale Größe des angezeigten Bildes wird berechnet.
	double hg = ausgabe->height()-40;
	double y_width = (fabs(y2-y1));	
	double x_width = (fabs(x2-x1));
	double wd = hg*(x_width/y_width);
	cout << wd << endl;
	if (wd > ausgabe->width()-40){
		double faktor = (ausgabe->width()-20)/wd;
		wd *= faktor;
		hg *= faktor;
	}	
	hg = int(hg);
	wd = int(wd);
	//Sklarierung der Koordinatenachsen.
	double x_scale = wd/x_width;
	double y_scale = hg/y_width;	
	
	//Stifte für die verschiedenen Zeichenstile festlegen.
	QPen koord(Qt::black, 1);
	QPen f(Qt::black, 2);
	QPen f_(QColor(150,0,0), 1,Qt::DashLine);
	QPen f__(QColor(0,0,150), 1,Qt::DashLine);
	QPen tayl_pen(QColor(180,180,180), 1);
	
	//Bild zum Reinzeichnen wird angelegt
	QImage img(wd,hg, QImage::Format_ARGB32);
	QPainter painter(&img);	
	painter.begin(&img);
	painter.fillRect(0,0,wd,hg,Qt::white);
	painter.setRenderHint(QPainter::Antialiasing, true);	
	
	//Legende für die Funktion
	painter.drawText(40,10,"f(x)");
	painter.setPen(f);
	painter.drawLine(10,5,30,5);
	
	//Translation des Koordinatensystemns, dass der Ursprung richtig zu den Intervallen passt.
	painter.translate(-x1*x_scale,y2*y_scale);
	
	//Laufvariable in der Schleife	
	int i = 0;
	
	//x-Koordinate an der geplottet wird, Funktionswert und Ableitungen.
	double x,u,v,w;
	autodiff abl(0,0,0);
	
	//x-Koordinate an der geplottet wird, Funktionswert und Ableitungen aus letztem Plottschritt.
	double x_alt,u_alt,v_alt,w_alt;
	
	//Je nach Angaben in der GUI wird eine Instanz von Taylor erstellt.
	double t0 = taylor_1_2->value();
	int k = taylor_1_1->value();
	taylor tpol = term.tayl(k,t0,term.get_baum());
	
	//Array für die Funktionswerte des Taylorpolynoms für ein bestimmtes k.
	double *tayl_y, *tayl_y_alt;
	tayl_y = new double[k+1];
	tayl_y_alt = new double[k+1];	
	
	//Schleife durchläuft alle x-Werte in Abhängigkeit von [x1,x2] und der Genauigkeit.
	while (x1 + i*gen <= x2){		
		//x-Wert
		x = x1 + i*gen;
		
		//Funktionswert usw bei x
		abl = term.derive(x,term.get_baum());
		u = abl.get_u();
		
		//Ableitungen in Variablen schreiben, falls benötigt
		if (diff == true){
			v = abl.get_v();
			w = abl.get_w();
		}
		
		//Taylor-Polynome zeichnen
		if (tay == true){
			for (int i = 0;i <= k;i++){
				tayl_y[i] = tpol.xval(x, t0, i);		
			}
		}
		
		//Nach einem Durchlauf werden die ersten Linien gezeichnet
		if (i>0){			
			if (diff == true){
				painter.setPen(f_);
				painter.drawLine(x_alt*x_scale,-v_alt*y_scale,x*x_scale,-v*y_scale);
				painter.setPen(f__);
				painter.drawLine(x_alt*x_scale,-w_alt*y_scale,x*x_scale,-w*y_scale);
			}
			painter.setPen(tayl_pen);
			if (tay == true){
				for (int i = 0;i < k;i++){
					painter.drawLine(x_alt*x_scale,-tayl_y_alt[i]*y_scale,x*x_scale,-tayl_y[i]*y_scale);							
				}				
			}
			
			painter.setPen(f);
			painter.drawLine(x_alt*x_scale,-u_alt*y_scale,x*x_scale,-u*y_scale);
		}
//.........这里部分代码省略.........
开发者ID:SebastianSemper,项目名称:QtDiff,代码行数:101,代码来源:gui.cpp


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