码迷,mamicode.com
首页 > 其他好文 > 详细

[从头学数学] 第160节 相似

时间:2016-04-04 11:55:01      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进入了筑基后期的修炼,
这次要修炼的目标是[相似]。

正剧开始:

星历2016年04月04日 09:54:11, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起研究[相似]。


技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

来求一下长度吧:

<span style="font-size:18px;">//例
//相似前
	if (1) {
	
		var r = 20;    
        config.setSector(1,1,1,1);      
        config.graphPaper2D(0, 0, r);    
        config.axis2D(0, 0,180, 1.5);      
        
		var triangle = new Triangle();
		var transform = new Transform();
		
		var array_1 = triangle.know2edges([18, 21], 118);
		array_1 = transform.translate(transform.rotate(array_1, 16/180*Math.PI), -10, 10);
		
		shape.angleDraw([].concat(array_1), 'red', 10, 'DAB');
		
		var array_2 = triangle.know2angles([83, 360-118-78-83-33.65], 33.47);
		
		array_2 = transform.translate(transform.rotate(array_2, 49.65/180*Math.PI), -10, -10);
		
        shape.angleDraw([].concat(array_2), 'orange', 10, 'DBC');

	}
	
//相似后
	if (1) {
	
		var r = 20;    
        config.setSector(1,1,1,1);      
        config.graphPaper2D(0, 0, r);    
        config.axis2D(0, 0,180, 1.5);      
        
		var triangle = new Triangle();
		var transform = new Transform();
		
		var array_1 = triangle.know2edges([18, 21], 118);
		array_1 = transform.translate(transform.rotate(array_1, 16/180*Math.PI), -10, 10);
		array_1 = transform.scale(array_1, 24/18);
		
		shape.angleDraw([].concat(array_1), 'red', 8, 'DAB');
		
		var array_2 = triangle.know2angles([83, 360-118-78-83-33.65], 33.47);
		
		array_2 = transform.translate(transform.rotate(array_2, 49.65/180*Math.PI), -10, -10);
		array_2 = transform.scale(array_2, 24/18);
		
        shape.angleDraw([].concat(array_2), 'orange', 8, 'DBC');

	}</span>

技术分享

技术分享


画到这小伟才发现画反了。赶紧纠正过来。

<span style="font-size:18px;">		var array_1 = triangle.know2edges([21, 18], 118);
		array_1 = transform.translate(transform.rotate(array_1, (49.65-28.35)/180*Math.PI), -10, 10);</span>

技术分享

技术分享

但这个也不对,一着急忘了把角度改过来:

下面这个才对:

技术分享

技术分享

其实小伟也就是随便玩玩,没什么好惊讶的。


技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

这个谢什么的三角形,小伟早就想动手画一画了,这下可找着机会了:

<span style="font-size:18px;">//谢氏三角形
	if (1) {
	
		var r = 20;    
        config.setSector(1,1,1,1);      
        config.graphPaper2D(0, 0, r);    
        config.axis2D(0, 0,180, 1.5);      
        
		var level = 5;
		
		var array = [[0, 0]];
		var r0 = 8*r;
		var len = 0;
		var tmp = [];
		var x = y = 0;
		
		var colorArray = ['red', 'orange', '#0088FF', 'green', 'cyan', 'blue', '#FF00FF',
			'#888888', 'black'];
			
			
		for (var i = 0; i < level; i++) {
			len = array.length;
			
			
			for (var j = 0; j < len; j++) {
				tmp = array.shift();
				x = tmp[0];
				y = tmp[1];
				
				shape.strokeDraw(shape.nEdge(x, y, r0, 3), colorArray[level%8]);
				array.push([x, y-r0/2]);
				array.push([x-r0*0.5*0.866, y+r0*0.25]);
				array.push([x+r0*0.5*0.866, y+r0*0.25]);
			}
			
			r0/=2;
		}
		
		

	}</span>

下面是五级的效果:

技术分享

<span style="font-size:18px;">//歪个头看看
	if (1) {
	
		var r = 20;    
        config.setSector(1,1,1,1);      
        config.graphPaper2D(0, 0, r);    
        config.axis2D(0, 0,180, 1.5);      
        
		var level = 5;
		
		var array = [[0, 0]];
		var r0 = 8*r;
		var len = 0;
		var tmp = [], tmp2 = [];
		var x = y = 0;
		
		var transform = new Transform();
		
		var colorArray = ['red', 'orange', '#0088FF', 'green', 'cyan', 'blue', '#FF00FF',
			'#888888', 'black'];
			
			
		for (var i = 0; i < level; i++) {
			len = array.length;
			
			r0/=2;

			
			for (var j = 0; j < len; j++) {
				tmp = array.shift();
				x = tmp[0];
				y = tmp[1];
				
				tmp2 = shape.nEdge(x, y, r0*2, 3, 0);
				tmp2 = transform.rotate(tmp2, Math.PI/4);
				shape.strokeDraw(tmp2, colorArray[level%8]);
				array.push([x, y-r0]);
				array.push([x-r0*Math.cos(Math.PI/6), y+r0*Math.sin(Math.PI/6)]);
				array.push([x+r0*Math.cos(Math.PI/6), y+r0*Math.sin(Math.PI/6)]);
			}
			
			
		}
		
		

	}
	</span>

技术分享

十级时是什么样子的呢?

技术分享


<span style="font-size:18px;">	if (1) {
	
		var r = 20;    
        config.setSector(1,1,1,1);      
        config.graphPaper2D(0, 0, r);    
        config.axis2D(0, 0,180, 1.5);      
        
		var level = 10;
		
		var array = [[0, 0]];
		var r0 = 8*r;
		var len = 0;
		var tmp = [], tmp2 = [];
		var x = y = 0;
		
		var transform = new Transform();
		
		var colorArray = ['red', 'orange', '#0088FF', 'green', 'cyan', 'blue', '#FF00FF',
			'#888888', 'black'];
			
			
		for (var i = 0; i < level; i++) {
			len = array.length;
			
			r0/=2;

			
			for (var j = 0; j < len; j++) {
				tmp = array.shift();
				x = tmp[0];
				y = tmp[1];
				
				tmp2 = shape.nEdge(x, y, r0*2, 3, 0);
				tmp2 = transform.rotate(tmp2, Math.PI/3);
				shape.strokeDraw(tmp2, colorArray[level%8]);
				array.push([x, y-r0]);
				array.push([x-r0*Math.cos(Math.PI/6), y+r0*Math.sin(Math.PI/6)]);
				array.push([x+r0*Math.cos(Math.PI/6), y+r0*Math.sin(Math.PI/6)]);
			}
			
			
		}
		
		

	}</span>


技术分享

技术分享

其实这些图小伟也想画一下的,但是一时之间怎么都算不对坐标,没法下手,就只好先放着了。


技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

看得出来这些点果然都在一条直线上。


<span style="font-size:18px;">//探索位似性质
	if (1) {
	
		var r = 20;    
        config.setSector(1,1,1,1);
        config.graphPaper2D(0, 0, r);    
		config.setSector(5,3,4,1);  
        config.axis2D(0, 0,260, 1.5);      
        
	
		
		
		var colorArray = ['red', 'orange', '#0088FF', 'green', 'cyan', 'blue', '#FF00FF','#888888', 'black'];
			
			
		var triangle = new Triangle();
		var transform = new Transform();
		
		var array_1 = triangle.know3edges([10, 8, 5]);
		array_1 = transform.translate(array_1, 5, 10);
		
		shape.strokeDraw([].concat(array_1), colorArray[0], 10);
		shape.pointDraw([].concat(array_1), colorArray[0], 10, 'ABC');
		
		var array_2 = transform.scale(array_1, 2);
		shape.strokeDraw([].concat(array_2), colorArray[1], 10);
		shape.pointDraw([].concat(array_2), colorArray[1], 10, ['A\'', 'B\'', 'C\'']);
		
		var x = y = 0;
		for (var i = 0; i < array_2.length; i++) {
			x = array_2[i][0];
			y = array_2[i][1];
			shape.multiLineDraw([[0, 0],[x, y]], colorArray[2], 10);
		}

	}
</span>


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


[从头学数学] 第160节 相似

标签:

原文地址:http://blog.csdn.net/mwsister/article/details/51055337

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!