[从头学数学] 第124节 不等式与不等式组

剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进入了筑基初期的修炼,
这次要修炼的目标是[不等式与不等式组]。

正剧开始:

星历2016年03月07日 08:39:00, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起研究[不等式与不等式组]。


[从头学数学] 第124节 不等式与不等式组_第1张图片

[从头学数学] 第124节 不等式与不等式组_第2张图片

[从头学数学] 第124节 不等式与不等式组_第3张图片

蓝色线表示的是不等式的左边,红色线是表示的不等式的右边,y轴表示的是左边或右边的值。

可以看出,当购买的商品总价比较少时,蓝色线的值比较小,表示较便宜,如果买得多了,

红色线会更便宜。但转折点在哪里,并不怎么能看得清楚。

<span style="font-size:18px;">function myDraw() {     
        
    var config = new PlotConfiguration();        
    config.init();        
    config.setPreference();           
      
    var r = 10;  
  
    config.setSector(1,1,1,1);    
    config.graphPaper2D(0, 0, r);  
    config.axis2D(0, 0, 180);    
  
      
	var xArray = [-300, 300];
	var yArray1 = [], yArray2 = [];
	
	for (var i = 0; i < 2; i++) {
		yArray1.push([xArray[i], 50+0.95*(xArray[i]-50)]);
		yArray2.push([xArray[i], 100+0.9*(xArray[i]-100)]);
	}
	
	shape.multiLineDraw(yArray1, 'blue');
	shape.multiLineDraw(yArray2, 'red');	
}</span>


从这个图来看,或许转折点是在x=150处,是不是呢,小伟决定算一下:

...

经过计算,确实当x=150时红。蓝线的值相等。


[从头学数学] 第124节 不等式与不等式组_第4张图片

[从头学数学] 第124节 不等式与不等式组_第5张图片



[从头学数学] 第124节 不等式与不等式组_第6张图片


[从头学数学] 第124节 不等式与不等式组_第7张图片

小伟想试一试能不能用区域来表示出不等式组的范围:

[从头学数学] 第124节 不等式与不等式组_第8张图片

[从头学数学] 第124节 不等式与不等式组_第9张图片

<span style="font-size:18px;">function myDraw() {     
        
    var config = new PlotConfiguration();        
    config.init();        
    config.setPreference();           
      
    var r = 10;  
  
    config.setSector(1,1,1,1);    
    config.graphPaper2D(0, 0, r);  
    config.axis2D(0, 0, 180);    
  
      
	var x = [-300, 300], y;
	var y1 = [], y2 = [];
	
	plot.setGlobalAlpha(0.5)
		.setGlobalCompositeOperation('source-over');
	for (var i = 0; i < 2; i++) {
		y = 40;
		y1.push([x[i], y]);
		y1.push([x[i], y+600]);
	};
	
	var tmp = shape.angularSort(y1);
	shape.fillDraw(tmp, 'blue');
	
	for (var i = 0; i < 2; i++) {
		y = 50;
		y2.push([x[i], y]);
		y2.push([x[i], y-600]);
	};
	
	tmp = shape.angularSort(y2);
	shape.fillDraw(tmp, 'yellow');
	
	
	//shape.multiLineDraw(yArray2, 'red');	
}</span>

差不多可以了吧。


<span style="font-size:18px;">function myDraw() {     
        
    var config = new PlotConfiguration();        
    config.init();        
    config.setPreference();           
      
    var r = 10;  
  
    config.setSector(1,1,1,1);    
    config.graphPaper2D(0, 0, r);  
    config.axis2D(0, 0, 180);    
  
      
	var x = [40, 50], y;
	var y1 = [], y2 = [];
	
	plot.setGlobalAlpha(0.6)
		.setGlobalCompositeOperation('source-over');

		x = 40;
		y1.push([x, -300]);
		y1.push([x, 300]);
		y1.push([x+600, 300]);
		y1.push([x+600, -300]);
	
	
	var tmp = shape.angularSort(y1);
	shape.fillDraw(tmp, 'blue');
	
		x = 50;
		y2.push([x, -300]);
		y2.push([x, 300]);
		y2.push([x-600, 300]);
		y2.push([x-600, -300]);
	
	tmp = shape.angularSort(y2);
	shape.fillDraw(tmp, 'red');
	
	
	//shape.multiLineDraw(yArray2, 'red');	
}</span>

说起来,小伟昨天又玩了会球,然后发现原来的函数有问题:

[从头学数学] 第124节 不等式与不等式组_第10张图片

这些球无法随心所欲地放到它们应该在的地方。

[从头学数学] 第124节 不等式与不等式组_第11张图片

于是小伟做了改进:


[从头学数学] 第124节 不等式与不等式组_第12张图片

这下就排得整齐了吧。


<span style="font-size:18px;">function myDraw() {   
      
    var config = new PlotConfiguration();      
    config.init();      
    config.setPreference();  		
    
	var r = 50;

	config.setSector(1,1,1,1);  
	config.graphPaper3D(1, 0, 0, r);
	config.axis3D(0, 0, 0, 180);  
	plot.save()
		.translate(0, -r+0.707*r);
	for (var i = -10; i < 10; i+=5) {//z向
			for (var j = -1; j < 0; j++) {//y向
				for (var k = -5; k < 5; k+=1) {//x向
					if (Math.abs(i * r) > 300 || Math.abs(k *r) > 300) continue;
					shape.sphere([k*r, 0*r, 0*r], r/3, 'yellow');
				}
			}
		}
	
	plot.restore();
	
}</span>

<span style="font-size:18px;">//绘制球体
this.sphere = function(pos/*[x, y, z]*/, r, style) {
	plot.save();
	
	var x, y;
	var p = [].concat(pos);
	if (p.length == 2) {
		x = p[0];
		y = p[1];
	}
	else if (p.length == 3) {
		var p1 = shape.point3D(p[0], -p[1], p[2]);
		x = p1[0];
		y = p1[1];
	}
	var r0 = 0.1*r;
	
	var grd = plot.createRadialGradient(x, y, r, x+0.3*r, y-0.3*r, r0);  
    grd.addColorStop(0, style);  
    grd.addColorStop(1, 'white');  
      
    plot.setFillStyle(grd);  
      
    shape.fillCircle(x, y, r); 
	plot.restore();

}</span>


<span style="font-size:18px;">this.strokeCubic = function(x0, y0, z0, r, style) {
	plot.save();
	
	x0 *= r;
	y0 *= r;
	z0 *= r;
	
	r *= 0.5;
	var array = [[-r, -r], [-r, r], [r, r], [r, -r]];
	
	var top = [];
	var left = [];
	var front = [];
	var x, y, z;
	//存放临时点
	var p = [];
	
	for (var i = 0; i < 4; i++) {
		x = (x0+array[i][0]);
		y = y0+r;
		z = (z0+array[i][1]);
		p = this.point3D(x, y, z);
		top.push([p[0], -p[1]]);
	}
	
	for (var i = 0; i < 4; i++) {
		x = x0+r;
		y = (y0+array[i][0])+2*r;
		z = z0+array[i][1];
		p = this.point3D(x, y, z);
		left.push([p[0], -p[1]]);
	}
	
	for (var i = 0; i < 4; i++) {
		x = x0+array[i][0];
		y = (y0+array[i][1])+2*r;
		z = z0+r;
		p = this.point3D(x, y, z);
		front.push([p[0], -p[1]]);
	}
	
	var tmp = [].concat(top);
	shape.fillDraw(tmp, style);
	tmp=[].concat(top);
	shape.strokeDraw(tmp, '#cccccc');
	tmp = [].concat(left);
	shape.strokeDraw(left, 'black');
	tmp = [].concat(front);
	shape.strokeDraw(front, 'black');
	plot.restore();

}</span>


现在既然球可以放到想要的位置上了,小伟就要好好地玩一会。

[从头学数学] 第124节 不等式与不等式组_第13张图片

<span style="font-size:18px;">function myDraw() {   
      
    var config = new PlotConfiguration();      
    config.init();      
    config.setPreference();  		
    
	var r = 50;

	config.setSector(1,1,1,1);  
	config.graphPaper3D(1, 0, 0, r);
	config.axis3D(0, 0, 0, 180);  
	
	var array = [];
	plot.save()
		.translate(0, -r+0.707*r);
	for (var i = -5; i < 10; i+=5) {//z向
			for (var j = -1; j < 0; j++) {//y向
				for (var k = -5; k < 5; k+=1) {//x向
					if (Math.abs(i * r) > 300 || Math.abs(k *r) > 300) continue;
					array.push([k*r, 0*r, i*r]);
				}
			}
		}
		
		for (var i = -10; i <= 10; i+=2) {//z向
			for (var j = -1; j < 0; j++) {//y向
				for (var k = -5; k <= 5; k+=5) {//x向
					if (Math.abs(i * r) > 300 || Math.abs(k *r) > 300) continue;
					array.push([k*r, 0*r, i*r]);
				}
			}
		}
	array = shape.xyzSort(array);
	
	var len = array.length;
	
	for (var i =0; i < len; i++) {
		if (i%3==0) {
			shape.sphere(array[i], r/3, 'red');
		}
		else if (i%4==0) {
			shape.sphere(array[i], r/3, 'blue');
		}
		else {
			shape.sphere(array[i], r/3, 'green');
		}
	}
	
	plot.restore();
	
}</span>

比如还可以来个四国围棋:

红、紫是一家,蓝、绿是一家,谁会赢呢?

<span style="font-size:18px;">function myDraw() {   
      
    var config = new PlotConfiguration();      
    config.init();      
    config.setPreference();  		
    
	var r = 10;

	config.setSector(1,1,1,1);  
	config.graphPaper3D(1, 0, 0, r);
	config.axis3D(0, 0, 0, 180);  
	
	var array = [];
	plot.save()
		.translate(0, -r+0.707*r);
	for (var i = -19; i <= 19; i+=5) {//z向
			for (var j = -1; j < 0; j++) {//y向
				for (var k = -19; k <=19; k+=1) {//x向
					if (Math.abs(i * r) > 300 || Math.abs(k *r) > 300) continue;
					array.push([k*r, 0*r, i*r]);
				}
			}
		}
		
		for (var i = -19; i <= 19; i+=2) {//z向
			for (var j = -1; j < 0; j++) {//y向
				for (var k = -19; k <= 19; k+=5) {//x向
					if (Math.abs(i * r) > 300 || Math.abs(k *r) > 300) continue;
					array.push([k*r, 0*r, i*r]);
				}
			}
		}
	array = shape.xyzSort(array);
	
	var len = array.length;
	
	for (var i =0; i < len; i++) {
		if (i%6==0) {
			shape.sphere(array[i], r/3, 'red');
		}
		else if (i%4==0) {
			shape.sphere(array[i], r/3, 'blue');
		}
		else if (i%5 == 0) {
			shape.sphere(array[i], r/3, 'purple');
		}
		else {
			shape.sphere(array[i], r/3, 'green');
		}
			
	}
	
	plot.restore();
	
}


function myDraw() {     
        
    var config = new PlotConfiguration();        
    config.init();        
    config.setPreference();           
      
    var r = 50;  
  
    config.setSector(1,1,1,1);    
    config.graphPaper2D(0, 0, r);  
    config.axis2D(0, 0, 180);    
  
      
	var xArray = [-300, 300];
	var yArray1 = [], yArray2 = [];
	
	for (var i = 0; i < 2; i++) {
		yArray1.push([xArray[i], 50+0.95*(xArray[i]-50)]);
		yArray2.push([xArray[i], 100+0.9*(xArray[i]-100)]);
	}
	
	shape.multiLineDraw(yArray1, 'blue');
	shape.multiLineDraw(yArray2, 'red');	
}</span>

还有小伟最爱的五行珠:

<span style="font-size:18px;">function myDraw() {   
      
    var config = new PlotConfiguration();      
    config.init();      
    config.setPreference();  		
    
	var r = 20;

	config.setSector(1,1,1,1);  
	config.graphPaper3D(1, 0, 0, r);
	config.axis3D(0, 0, 0, 180);  
	
	var array = [];
	plot.save()
		.translate(0, -r+0.707*r);
	for (var i = -19; i <= 19; i+=5) {//z向
			for (var j = -1; j < 0; j++) {//y向
				for (var k = -19; k <=19; k+=1) {//x向
					if (Math.abs(i * r) > 300 || Math.abs(k *r) > 300) continue;
					array.push([k*r, 0*r, i*r]);
				}
			}
		}
		
		for (var i = -19; i <= 19; i+=2) {//z向
			for (var j = -1; j < 0; j++) {//y向
				for (var k = -19; k <= 19; k+=5) {//x向
					if (Math.abs(i * r) > 300 || Math.abs(k *r) > 300) continue;
					array.push([k*r, 0*r, i*r]);
				}
			}
		}
	array = shape.xyzSort(array);
	
	var len = array.length;
	
	for (var i =0; i < len; i++) {
		if (i%6==0) {//水
			shape.sphere(array[i], r/3, 'cyan');
		}
		else if (i%7==0) {//木
			shape.sphere(array[i], r/3, 'green');
		}
		else if (i%3 == 0) {//火
			shape.sphere(array[i], r/3, 'red');
		}
		else if (i % 4 == 0) {//金
			shape.sphere(array[i], r/3, '#E0D0D0');
		}
		else {//土
			shape.sphere(array[i], r/3, '#886622');
		}
			
	}
	
	plot.restore();
	
}</span>

本节到此结束,欲知后事如何,请看下回分解。


你可能感兴趣的:([从头学数学] 第124节 不等式与不等式组)