point = viewStart.multiplyk(1.0 - t1).add(viewEnd.multiplyk(t1)); point = viewStart.multiplyk(1.0 - t2).add(viewEnd.multiplyk(t2)); else
normal = Vec3.normalize(point.minus(_position)); return true;
public var _width :Number =0.0; public var _height:Number = 0.0; public var data:Array = new Array();
protected function group1_creationCompleteHandler(event:FlexEvent):void { }
public function draw():void{
graphics.clear();
if(txtViewDir.text == \)
var ary:Array = txtViewDir.text.split(\); var flag:Boolean = false;
for(var i:int= 0;i
if(flag)
if(ary[i] == \ || isNaN(ary[i])) { }
flag = true; break; return; draw();
3
}
{ }
txtViewDir.setStyle(\,0x000000);
var viewDir:Vec3 = new Vec3(Number(ary[0]), Number(ary[1]), Number(ary[2]));
ary = txtLight.text.split(\); flag = false;
for(i= 0;i
if(flag) { }
txtLight.setStyle(\,0x000000);
var light:Light = new Light();
light.direction = new Vec3(Number(ary[0]), Number(ary[1]),
light.ambient = new Vec3(Number(ary[0]), Number(ary[1]), Number(ary[2])); light.intensity = new Vec3(Number(ary[0]), Number(ary[1]), Number(ary[2]));
var material:Material = new Material(); material.diffuse =new Vec3(0.0, 0.0, 0.8); material.specular =new Vec3(0.2, 0.2, 0.2); material.ambient =new Vec3(0.1, 0.1, 0.1);
data = createSceneImage( 200, 150, viewDir, light, material ); drawImg();
txtLight.setStyle(\,0xff0000); return;
if(ary[i] == \ || isNaN(ary[i])) { }
flag = true; break;
txtViewDir.setStyle(\,0xff0000); return;
Number(ary[2])).negative();
public function drawImg():void{
for(var y:int = 0 ;y<150;y++)
4
}
{ }
for(var x:int =0;x<200;x++){ }
var index:int = (y*200 + x) * 3; var r:Number = data[index+0]; var g:Number = data[index+1]; var b:Number = data[index+2];
var cl:uint =(r << 16) | (g << 8) | b; this.graphics.beginFill(cl) this.graphics.drawCircle(x,y,1); this.graphics.endFill();
public function allocateBuffer( width:int,height: int ):Array { }
public function createSceneImage( width:int,height: int , {
var data:Array = new Array();
var sphere:SphereObject = new SphereObject(50.0); sphere.setPosition(new Vec3(0.0, 0.0, 0.0) ); sphere.setMaterial( material );
var halfW:int = width / 2 var halfH:int = height / 2; for ( var y:int=0; yfor ( var x:int=0; xvar viewStart:Vec3 = new Vec3(Number(x - halfW), Number(y - halfH), 0.0);
if ( sphere.computeIntersection(viewStart, viewDir) )
var index:int = (y*width + x) * 3;
sphere.color = sphere.computeColor(light, viewDir, sphere.normal); sphere.color = new Vec3(0.1, 0.1, 0.1); else
viewDir:Vec3, light:Light, material:Material ):Array var data:Array = new Array(); data.length = width * height * 3; _width = width; _height = height return data;
5
}
}
}
data[index+0] = (sphere.color.getVec(0) * 255.0); data[index+1] = (sphere.color.getVec(1) * 255.0); data[index+2] = (sphere.color.getVec(2) * 255.0);
return data;
protected function button1_clickHandler(event:MouseEvent):void { // TODO Auto-generated method stub
draw();
}
编译运行得到如下结果:
6
以上是由77cn范文大全为大家整理的计算机图形学实验报告-实验5Phong光照模型的相关范文,本文关键词为计算机,图形,实验,报告,5Phong,光照,模型,计算机,,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。
计算机图形学实验报告-实验5Phong光照模型.doc
免费范文网为全国范文类知名网站,下载全文稍作修改便可使用,即刻完成写稿任务。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库计算机图形学实验报告-实验5Phong光照模型在线全文阅读。
本文来自:免费范文网(www.77cn.com.cn) 转载请注明出处!