Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Threejs¿ª·¢3DµØÍ¼Êµ¼ù×ܽá
 
À´Ô´£º51cto ·¢²¼ÓÚ2017-8-3
  2714  次浏览      33
 

ǰ¶Îʱ¼äÁ¬ÐøÉÏÁËÒ»¸öÔ°࣬¼Ó°à¼ÓµãÍê³ÉÁËÒ»¸ö3D¹¥¼áÏîÄ¿¡£Ò²ËãÊÇÓÉ´«Í³webתÐ͵½webglͼÐÎѧ¿ª·¢ÖУ¬¿Ó²»ÉÙ£¬×öÁËÒ»ÏÂ×ܽá·ÖÏí¡£

1¡¢·¨ÏòÁ¿ÎÊÌâ

·¨ÏßÊÇ´¹Ö±ÓÚÎÒÃÇÏëÒªÕÕÁÁµÄÎïÌå±íÃæµÄÏòÁ¿¡£·¨Ïß´ú±í±íÃæµÄ·½ÏòÒò´ËËûÃÇΪ¹âÔ´ºÍÎïÌåµÄ½»»¥½¨Ä£ÖоßÓоö¶¨ÐÔ×÷Óá£Ã¿Ò»¸ö¶¥µã¶¼ÓÐÒ»¸ö¹ØÁªµÄ·¨ÏòÁ¿¡£

Èç¹ûÒ»¸ö¶¥µã±»¶à¸öÈý½ÇÐι²Ïí£¬¹²Ïí¶¥µãµÄ·¨ÏòÁ¿µÈÓÚ¹²Ïí¶¥µãÔÚ²»Í¬µÄÈý½ÇÐÎÖеķ¨ÏòÁ¿µÄºÍ¡£N=N1+N2;

ËùÒÔÈç¹û²»×öÈκδ¦Àí£¬Ö±½Ó½«3άÎïÌåµÄµã´«µÝ¸øBufferGeometry£¬ÄÇôÓÉÓÚ·¨ÏòÁ¿±»ºÏ³É£¬¾­¹ýƬԪ×ÅÉ«Æ÷²åÖµºó£¬¾Í»áµÃµ½Õâ¸öºÚ²»ÁïÇïµÄЧ¹û

ÎҵĴ¦Àí·½Ê½Ê¹¶¥µãµÄ·¨ÏòÁ¿±£³ÖΨһ£¬ÄÇô¾ÍÐèÒªÔÚ¹²Ïí¶¥µã´¦£¬¿½±´Ò»·Ý¶¥µã£¬²¢ÖØÐ¼ÆËãË÷Òý£¬ÊǵÄÿ¸ö±»¶à¸öÃæ¹²ÏíµÄ¶¥µã¶¼Óжà·Ý£¬Ã¿Ò»·ÝÓÐÒ»¸öµ¥¶ÀµÄ·¨ÏòÁ¿£¬ÕâÑù¾Í¿ÉÒÔʹµÃÿ¸öÃæ¶¼ÓÐÒ»¸öÏàͬµÄÑÕÉ«

2¡¢¹âÔ´ÓëÃæ¿éÑÕÉ«

¿ª·¢¹ý³ÌÖÐÉè¼Æ¸øÁËÒ»Ì×ÅäÉ«£¬È»¶øÒ»µ©ÓйâÔ´£¬Ãæ¿éµÄ×îÖÕÑÕÉ«¾Í»áÓë¹âÔ´»ìºÏ£¬ÑÕÉ«×ÔÈ»Óë×îÖÕÉè¼ÆµÄÑÕÉ«´óÏྶͥ¡£ÏÂÃæÊÇLambert¹âÕÕÄ£Ð͵ĻìºÏËã·¨¡£

¶øÇÒ²úÆ·µÄÒªÇóÊǶ¥Ãæ±£³ÖÉè¼ÆµÄÑÕÉ«£¬²àÃæÐèÒª¼ÓÈë¹âÔ´±ä»¯Ð§¹û£¬µ±¶ÔµØÍ¼×ö²Ù×÷ʱ£¬²àÃæÑÕÉ«ÐèÒª¸ù¾ÝÊӽǷ¢Éú±ä»¯¡£ÄÇôÎҵĴ¦Àí·½Ê½Êǽ«¶¥ÃæÓë²àÃæ·Ö±ð»æÖÆ(´´½¨Á½¸öMesh)£¬¶¥ÃæÊ¹ÓÃMeshLambertMaterialµÄemssiveÊôÐÔÉèÖÃ×Ô·¢¹âÑÕÉ«ÓëÉè¼ÆÑÕÉ«±£³ÖÒ»Ö£¬Ò²¾Í²»»áÓйâÕÕЧ¹û£¬²àÃæ×ÛºÏʹÓÃEmssiveÓëcolorÀ´Ó¦ÓùâԴЧ¹û¡£

3¡¢POI±ê×¢

ThreeÖд´½¨Ê¼ÖÕ³¯ÏòÏà»úµÄPOI¿ÉÒÔʹÓÃSpriteÀ࣬ͬʱ¿ÉÒÔ½«ÎÄ×ÖºÍͼƬ»æÖÆÔÚcanvasÉÏ£¬½«canvas×÷ÎªÎÆÀíÌùͼ·Åµ½SpriteÉÏ¡£µ«ÕâÀïµÄÒ»¸öÎÊÌâÊÇcanvasͼÏñ½«»áÊ§Õæ£¬Ô­ÒòÊÇûÓкÏÀíµÄÉèÖÃspriteµÄscale£¬µ¼ÖÂͼƬ±»À­Éì»òËõ·ÅÊ§Õæ¡£

ÎÊÌâµÄ½â¾ö˼·ÊÇÒª±£Ö¤ÔÚ3dÊÀ½çÖеÄËõ·Å³ß´ç£¬¾­¹ýһϵÁб任ͶӰµ½Ïà»úÆÁÄ»ºóÈÔÈ»ÓëcanvasÔÚÆÁÄ»ÉϵĴóС±£³ÖÒ»Ö¡£ÕâÐèÒªÎÒÃǼÆËã³öÆÁÄ»ÏñËØÓë3dÊÀ½çÖеij¤¶Èµ¥Î»µÄ±ÈÖµ£¬È»ºó½«spriteËõ·Åµ½ºÏÊʵÄ3d³¤¶È¡£

4¡¢µã»÷ʰȡÎÊÌâ

webglÖÐ3DÎïÌ廿֯µ½ÆÁÄ»½«¾­¹ýÒÔϼ¸¸ö½×¶Î

ËùÒÔÒªÔÚ3DÓ¦ÓÃ×öµã»÷ʰȡ£¬Ê×ÏÈÒª½«ÆÁÄ»×ø±êϵת»¯³Éndc×ø±êϵ£¬ÕâʱºòµÃµ½ndcµÄxy×ø±ê£¬ÓÉÓÚ2dÆÁÄ»²¢Ã»ÓÐzÖµËùÒÔ£¬ÆÁÄ»µãת»¯³É3d×ø±êµÄz¿ÉÒÔËæÒâȡֵ£¬Ò»°ãÈ¡0.5(zÔÚ-1µ½1Ö®¼ä)¡£

function fromSreenToNdc(x, y, container) {

return {

x: x / container.offsetWidth * 2 - 1,

y: -y / container.offsetHeight * 2 + 1,

z: 1

};

}

function fromNdcToScreen(x, y, container) {

return {

x: (x + 1) / 2 * container.offsetWidth,

y: (1 - y) / 2 * container.offsetHeight

};

}

È»ºó½«ndc×ø±êת»¯³É3D×ø±ê£º

ndc = P * MV * Vec4

Vec4 = MV-1 * P -1 * ndc

Õâ¸ö¹ý³ÌÔÚThreeÖеÄVector3ÀàÖÐÒѾ­ÓÐʵÏÖ£º

unproject: function () {



var matrix = new Matrix4();



return function unproject( camera ) {



matrix.multiplyMatrices( camera.matrixWorld,

matrix.getInverse( camera.projectionMatrix ) );

return this.applyMatrix4( matrix );



};



}(),

½«µÃµ½µÄ3dµãÓëÏà»úλÖýáºÏÆðÀ´×öÒ»ÌõÉäÏߣ¬·Ö±ðÓ볡¾°ÖеÄÎïÌå½øÐÐÅöײ¼ì²â¡£Ê×ÏÈÓëÎïÌåµÄÍâ°üÇò½øÐÐÏཻÐÔ¼ì²â£¬ÓëÇò²»ÏཻµÄÅųý£¬ÓëÇòÏཻµÄ±£´æ½øÈëÏÂÒ»²½´¦Àí¡£½«ËùÓÐÍâ°üÇòÓëÉäÏßÏཻµÄÎïÌå°´ÕÕ¾àÀëÏà»úÔ¶½ü½øÐÐÅÅÐò£¬È»ºó½«ÉäÏßÓë×é³ÉÎïÌåµÄÈý½ÇÐÎ×öÏཻÐÔ¼ì²â¡£Çó³öÏཻÎïÌå¡£µ±È»Õâ¸ö¹ý³ÌÒ²ÓÉThreeÖеÄRayCaster×öÁË·â×°£¬Ê¹ÓÃÆðÀ´ºÜ¼òµ¥£º

mouse.x = ndcPos.x;

mouse.y = ndcPos.y;

this.raycaster.setFromCamera(mouse, camera);

var intersects = this.raycaster.intersectObjects(this._

getIntersectMeshes(floor, zoom), true);

5¡¢ÐÔÄÜÓÅ»¯

Ëæ×ų¡¾°ÖеÄÎïÌåÔ½À´Ô½¶à£¬»æÖƹý³ÌÔ½À´Ô½ºÄʱ£¬µ¼ÖÂÊÖ»ú¶Ë¼¸ºõÎÞ·¨Ê¹Óá£

ÔÚͼÐÎѧÀïÃæÓиöºÜÖØÒªµÄ¸ÅÄî½Ð¡°one draw all¡±Ò»´Î»æÖÆ£¬Ò²¾ÍÊÇ˵µ÷ÓûæÍ¼apiµÄ´ÎÊýÔ½ÉÙ£¬ÐÔÄÜÔ½¸ß¡£±ÈÈçcanvasÖеÄfillRect¡¢fillTextµÈ£¬webglÖеÄdrawElements¡¢drawArrays;ËùÒÔÕâÀïµÄ½â¾ö·½°¸ÊǶÔÏàͬÑùʽµÄÎïÌ壬°ÑËüÃǵIJàÃæºÍ¶¥ÃæÍ³Ò»·Åµ½Ò»¸öBufferGeometryÖС£ÕâÑù¿ÉÒÔ´ó´ó½µµÍ»æÍ¼apiµÄµ÷ÓôÎÊý£¬¼«´óµÄÌáÉýäÖȾÐÔÄÜ¡£

ÕâÑù½â¾öÁËäÖȾÐÔÄÜÎÊÌ⣬Ȼ¶ø´øÀ´ÁËÁíÒ»¸öÎÊÌ⣬ÏÖÔÚÊǰÉËùÓÐÑùʽÏàͬµÄÃæ·ÅÔÚÒ»¸öBufferGeometryÖÐ(ÎÒÃdzÆÎªÑùʽͼÐÎ)£¬ÄÇôÔÚÃæµã»÷ʱºò¾ÍÎÞ·¨µ¥¶ÀÅжϳöµ½µ×ÊÇÄĸöÎïÌå(ÎÒÃdzÆÎªÎïÌåͼÐÎ)±»Ñ¡ÖУ¬Ò²¾ÍÎÞ·¨¶ÔÕâ¸öÎïÌå½øÐиßÁÁËõ·Å´¦Àí¡£ÎҵĴ¦Àí·½Ê½ÊÇ£¬°ÑËùÓеÄÎïÌåµ¥¶ÀÉú³ÉÎïÌåͼÐα£´æÔÚÄÚ´æÖУ¬×öÃæµã»÷µÄʱºòÓÃÕⲿ·ÖÊý¾ÝÀ´×öÏཻÐÔ¼ì²â¡£¶ÔÓÚÑ¡ÖÐÎïÌåºóµÄ¸ßÁÁËõ·Å´¦Àí£¬Ê×ÏȰÑÑùÊ½ÃæÖÐÏàÓ¦²¿·Ö²Ã¼õµô£¬È»ºó°ÑÑ¡ÖеÄÎïÌåͼÐμÓÈëµ½³¡¾°ÖУ¬¶ÔËü½øÐÐËõ·Å¸ßÁÁ´¦Àí¡£²Ã¼ô·½·¨ÊÇ£¬¼Ç¼ÿ¸öÎïÌåÔÚÑùʽͼÐÎÖÐµÄÆäʵË÷ÒýλÖã¬ÔÚÐèÒª²ÃÇÐʱºò½«Õⲿ·ÖË÷ÒýÖÆÁã¡£ÔÚÐèÒª»Ö¸´µÄµØ·½ÔÚ°ÑÕⲿ·ÖË÷Òý»Ö¸´³ÉÔ­×´¡£

6¡¢Ãæµã»÷ÒÆ¶¯µ½ÆÁÄ»ÖÐÑë

Õⲿ·ÖÒ²ÊÇÓöµ½Á˲»ÉÙ¿Ó£¬Ê×ÏȵÄÏë·¨ÊÇ£º

ÃæÖÐÐĵãĿǰÊÇÔÚÊÀ½ç×ø±êϵÄÚµÄ×ø±ê£¬ÏÈÓÃcenter.project(camera)µÃµ½¹éÒ»»¯Éè±¸×ø±ê£¬ÔÚ¸ù¾ÝndcµÃµ½ÆÁÄ»×ø±ê£¬¶øºó¸ù¾ÝÃæÖÐÐĵãÆÁÄ»×ø±êÓëÆÁÄ»ÖÐÐĵã×ø±ê×ö²åÖµ£¬µÃµ½Æ«ÒÆÁ¿£¬ÔÚ¸ù¾ÝOribitControlsÖеÄpan·½·¨À´¸üÐÂÏà»úλÖá£ÕâÖÖ·½Ê½×îÖÕÒÔʧ°Ü¸æÖÕ£¬ÒòΪÏà»ú¿ÉÄÜ×ö¸÷Öֱ任£¬ËùÒÔÆÁÄ»×ø±êµÄÆ«ÒÆÓë3dÊÀ½ç×ø±êϵÖеÄλÖùØÏµ²¢²»ÊÇÏßÐÔ¶ÔÓ¦µÄ¡£

×îÖÕµÄÏë·¨ÊÇ£º

ÎÒÃÇÏÖÔÚÏ뽫µã»÷ÃæµÄÖÐÐĵãÒÆµ½ÆÁÄ»ÖÐÐÄ£¬ÆÁÄ»ÖÐÐĵÄndc×ø±êÓÀÔ¶¶¼ÊÇ(0,0)ÎÒÃǵĹ۲ìÊÓÏßÓë½ü¾°ÃæµÄ½¹µãµÄndc×ø±êÒ²ÊÇ0,0;Ò²¾ÍÊÇ˵ÎÒÃÇÒª½«ÃæÖÐÐĵã×÷ΪÎÒÃǵĹ۲ìµã(ÆÁÄ»µÄÖÐÐÄÓÀÔ¶¶¼ÊÇÏà»úµÄ¹Û²ìÊÓÏß)£¬ÕâÀïÎÒÃÇ¿ÉÒÔÖ±½Ó½«ÃæÖÐÐÄËùνÊÓÏߵĹ۲ìµã£¬ÀûÓÃlookAt·½·¨ÇóÈ¡Ïà»ú¾ØÕ󣬵«Èç¹ûÕâÑù¼òµ¥´¦ÀíºóµÄЧ¹û¾Í»á¸øÈ˸оõÏà»úµÄ×Ë̬±ä»¯ÁË£¬Ò²¾ÍÊÇ»á¸Ð¾õ²¢²»ÊÇÆ½ÒƹýÈ¥µÄ£¬ËùÒÔÎÒÃÇÒª×öµÄÊDZ£³ÖÏà»úµ±Ç°×Ë̬½«ÃæÖÐÐÄ×÷ΪÏà»ú¹Û²ìµã¡£

»ØÏëÆ½ÒÆÊ±ÎÒÃǽ«ÆÁÄ»ÒÆ¶¯×ª»¯ÎªÏà»ú±ä»¯µÄ¹ý³ÌÊÇÖªµÀÆÁÄ»Æ«ÒÆÇótarget£¬ÕâÀïÎÒÃÇÒª×öµÄ¾ÍÊÇÖªµÀtarget·´ÍÆÆÁÄ»Æ«ÒÆµÄ¹ý³Ì¡£Ê×Ïȸù¾Ýµ±Ç°targetÓëÃæÖÐÐÄÇó³öÏà»úµÄÆ«ÒÆÏòÁ¿£¬¸ù¾ÝÏà»úÆ«ÒÆÏòÁ¿Çó³öÔÚÏà»úxÖáºÍupÖáµÄͶӰ³¤¶È£¬¸ù¾ÝͶӰ³¤¶È¾ÍÄÜ·µÍƳöÓ¦¸ÃÔÚÆÁÄ»ÉÏµÄÆ½ÒÆÁ¿¡£

this.unprojectPan = function(deltaVector, moveDown) {

// var getProjectLength()

var element = scope.domElement === document ? scope.domElement.body : scope.domElement;



var cxv = new Vector3(0, 0, 0).setFromMatrixColumn(scope.object.matrix, 0);

// Ïà»úxÖá

var cyv = new Vector3(0, 0, 0).setFromMatrixColumn(scope.object.matrix, 1);

// Ïà»úyÖá

// Ïà»úÖá¶¼Êǵ¥Î»ÏòÁ¿

var pxl = deltaVector.dot(cxv)/* / cxv.length()*/;
var pyl = deltaVector.dot(cyv)/* / cyv.length()*/;

// ÏòÁ¿ÔÚÏà»úyÖáµÄͶӰ



// offset=dx * vector(cx) + dy * vector(cy.project(xoz).normalize)

// offsetÓÉÏà»úxÖá·½ÏòÏòÁ¿+Ïà»úyÖáÏòÁ¿ÔÚxozÆ½ÃæµÄ

ͶӰ×é³É

var dv = deltaVector.clone();

dv.sub(cxv.multiplyScalar(pxl));

pyl = dv.length();



if ( scope.object instanceof PerspectiveCamera ) {

// perspective



var position = scope.object.position;

var offset = new Vector3(0, 0, 0);

offset.copy(position).sub(scope.target);

var distance = offset.length();

distance *= Math.tan(scope.object.fov / 2 *

Math.PI / 180);



// var xd = 2 * distance * deltaX / element

.clientHeight;

// var yd = 2 * distance * deltaY / element

.clientHeight;

// panLeft( xd, scope.object.matrix );

// panUp( yd, scope.object.matrix );



var deltaX = pxl * element.clientHeight /

(2 * distance);

var deltaY = pyl * element.clientHeight /

(2 * distance) * (moveDown ? -1 : 1);



return [deltaX, deltaY];

} else if ( scope.object instanceof Orthogra

phicCamera ) {



// orthographic

// panLeft( deltaX * ( scope.object.right -

scope.object.left ) / scope.object.zoom /

element.clientWidth, scope.object.matrix );

// panUp( deltaY * ( scope.object.top - scope

.object.bottom ) / scope.object.zoom / element

.clientHeight, scope.object.matrix );

var deltaX = pxl * element.clientWidth * scope.

object.zoom / (scope.object.right - scope.object

.left);

var deltaY = pyl * element.clientHeight * scope.

object.zoom / (scope.object.top - scope.object.

bottom);



return [deltaX, deltaY];

} else {



// camera neither orthographic nor perspective

console.warn( 'WARNING: OrbitControls.js encountered

an unknown camera type - pan disabled.' );



}

}

7¡¢2/3DÇл»

23DÇл»µÄÖ÷ÒªÄÚÈݾÍÊǵ±Ïà»úµÄÊÓÏßÖáÓ볡¾°µÄÆ½Ãæ´¹Ö±Ê±£¬Ê¹ÓÃÆ½ÐÐͶӰ£¬ÕâÑùÓû§Ö»ÄÜ¿´µ½¶¥Ãæ¸øÈ˵ĸоõ¾ÍÊÇ2DÊÓͼ¡£ËùÒÔÒª¸ù¾Ý͸ÊÓµÄÊÓ×¶Ì弯Ëã³öƽÐÐͶӰµÄÊÀ¾°Ìå¡£

ÒòΪÓû§»áÔÚ2D¡¢3D³¡¾°ÏÂ×öºÜ¶à²Ù×÷£¬±ÈÈçÆ½ÒÆ¡¢Ëõ·Å¡¢Ðýת£¬ÒªÏëÎÞ·ìÇл»£¬Õâ¸ö¹Ø¼üÔÚÓÚ½«Æ½ÐÐͶӰÓëÊÓ×¶ÌåÏà»úµÄλÖá¢lookAt·½Ê½±£³ÖÒ»ÖÂ;ÒÔ¼°½«ËûÃÇ·Å´óËõСµÄ¹Ø¼üµã£ºdistanceµÄ±ÈÀýÓëzoomÀ´±£³ÖÒ»Ö¡£

ƽÐÐͶӰÖУ¬zoomÔ½´ó´ú±íÁùÃæÌåµÄÊ×βÁ½¸ö̾̾»ýԽС£¬·Å´óÔ½´ó¡£

8¡¢3DÖеØÀí¼¶±ð

µØÀí¼¶±ðʵ¼ÊÊÇÏñËØ¸úÄ«¿¨ÍÐ×ø±êϵÏÂÃ׵ĶÔÓ¦¹ØÏµ£¬Õâ¸öÓÐͨÓõıê×¼ÒÔ¼°¼ÆË㹫ʽ£º

r=6378137

resolution=2*PI*r/(2^zoom*256)

¸÷¸ö¼¶±ðÖÐÏñËØÓëÃ׵ĶÔÓ¦¹ØÏµÈçÏ£º

resolution zoom 2048 blocksize 256 blocksize scale(dpi=160)

156543.0339 0 320600133.5 40075016.69 986097851.5

78271.51696 1 160300066.7 20037508.34 493048925.8

39135.75848 2 80150033.37 10018754.17 246524462.9

19567.87924 3 40075016.69 5009377.086 123262231.4

9783.939621 4 20037508.34 2504688.543 61631115.72

4891.96981 5 10018754.17 1252344.271 30815557.86

2445.984905 6 5009377.086 626172.1357 15407778.93

1222.992453 7 2504688.543 313086.0679 7703889.465

611.4962263 8 1252344.271 156543.0339 3851944.732

305.7481131 9 626172.1357 78271.51696 1925972.366

152.8740566 10 313086.0679 39135.75848 962986.1831

76.4370283 11 156543.0339 19567.87924 481493.0916

38.2185141 12 78271.51696 9783.939621 240746.5458

19.1092571 13 39135.75848 4891.96981 120373.2729

9.5546285 14 19567.87924 2445.984905 60186.63645

4.7773143 15 9783.939621 1222.992453 30093.31822

2.3886571 16 4891.96981 611.4962263 15046.65911

1.1943286 17 2445.984905 305.7481131 7523.329556

0.5971643 18 1222.992453 152.8740566 3761.664778

0.2985821 19 611.4962263 76.43702829 1880.832389

0.1492911 20 305.7481131 38.21851414 940.4161945

0.0746455 21

0.0373227 22

3DÖеļÆËã²ßÂÔÊÇ£¬Ê×ÏÈÐèÒª½«3DÊÀ½çÖеÄ×ø±êÓëÄ«¿¨Íе¥Î»µÄ¶ÔÓ¦¹ØÏµ¸ãÇå³þ£¬Èç¹ûÒѾ­ÊÇÒÔmiÀ´×öµ¥Î»£¬ÄÇô¾Í¿ÉÒÔÖ±½Ó½«Ïà»úµÄͶӰÆÁÄ»µÄ¸ß¶ÈÓëÆÁÄ»µÄÏñËØÊýÄ¿×ö±ÈÖµ£¬µÃ³öµÄ½á¹û¸úÉÏÃæµÄranking×ö±È½Ï£¬Ñ¡Ôñ²»Óõļ¶±ðÊý¾ÝÒÔ¼°±ÈÀý³ß¡£×¢Òâ3DµØÍ¼ÖеıÈÀý³ß²¢²»ÊÇÔÚËùÓÐÆÁÄ»ÉϵÄËùÓÐλÖÃÓëÏÖʵÊÀ½ç¶¼Âú×ãÕâ¸ö±ÈÀý³ß£¬Ö»ÄÜ˵ÊÇÏà»úÖÐÐĵãÔÚÆÁĻλÖô¦µÄÏñËØÊÇÂú×ãÕâ¸ö¹ØÏµµÄ£¬ÒòΪƽÐÐͶӰÓнü´óԶСµÄЧ¹û¡£

9¡¢poiÅöײ

ÓÉÓÚ±ê×¢ÊÇÓÀÔ¶³¯×ÅÏà»úµÄ£¬ËùÒÔ±ê×¢µÄÅöײ¾ÍÊǰѱê×¢µãת»»µ½ÆÁÄ»×ø±êϵÓÿí¸ßÀ´¼ÆËã¾ØÐÎÏཻÎÊÌâ¡£ÖÁÓÚ¾ßÌåµÄÅöײËã·¨£¬´ó¼Ò¿ÉÒÔÔÚÍøÉÏÕÒµ½£¬ÕâÀï²»Õ¹¿ª¡£ÏÂÃæÊǼÆËãpoi¾ØÐεĴúÂë

 

   
2714 ´Îä¯ÀÀ       33
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì