自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 安卓 打开保存二进制文件

首先在AndroidManifest文件里添加在代码里写入public void 保存() { String FILENAME = "Bdata.txt" ;// 设置文件名称 String DIR = "BOOY" + File.separator + "TUYA" ; if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { // 如果sdcar

2022-02-13 12:19:08 571

原创 只是展示一下

视频链接:3D显示引擎1.0http://v.youku.com/v_show/id_XMjQ5MzcxODYyOA==.html?spm=a2hzp.8244740.userfeed.5!2~5~5~5!3~5~A

2017-02-02 15:53:28 203

原创 自制3D显示引擎十:三维坐标在屏幕上的映射

根据图可知P(x,y,z)在没有缩放倍数的情况下的显示坐标为(x/z,y/z)。

2017-01-23 21:08:47 722

原创 自制3D显示引擎九:三维空间的显示区域

在三维空间里观察物体,需要一个摄像机,和一个处于显示区域里的物体。摄像机的问题,以后会讲。现在先讲一下显示区域。空间坐标系有两种,左手坐标系和右手坐标系,在这里,我习惯使用左手坐标系。显示区域是一个六面体,有着前后上下左右六个面,超出范围的都会被裁剪掉,裁剪方法借鉴第八篇文章。在这里需要判断点与面的关系,所以需要知道最后显示的屏幕大小,根据这个数据才能得

2017-01-23 20:46:19 354

原创 自制3D显示引擎七:填充任意多边形

将一个n边形分成n-2个三角形,即0123456分成012 023 034 045 056.以012方向为正(顺逆时针)判断每个三角形的正反,如果某辅助边一侧为正,一侧为反,那么此边不显示。现将所有三角形只填充内部,正方向的在内存画布上值(初始值为0)+1,反方向的-1.最后再重新绘制边与可显示的边。值不为0的即该点显示。该算法是刚构思出来的,肯定有不妥的地方,应该可以优化。

2017-01-22 04:36:27 302

原创 自制3D显示引擎八:矩形窗口裁剪

只讲原理,代码需要自己构思、设计,这种算法只有自己写出来才能真正的记在脑子里。①:正方形区域为显示区域,该三角形为经典的多次裁剪三角形。三角形与显示区域的相交情况有好几种:三角形全部在显示区域内、外,部分在显示区域内;三角形的边框并没有和显示框相交,却有显示部分。网上也有一些相关的算法,但是总结的不是很正确,很清楚。正确的方法是用每条边界去裁剪三角形,留下的继续裁剪。直到每条边都去

2017-01-22 03:37:20 293

原创 自制3D显示引擎六.二:递归式填充

该算法效果可以从win系统画图程序中得到。public void pfill(int x,int y){if(x>=0&&x=0&&yif(pics[x][y]pics[x][y]=setpci;pfill(x-1,y);pfill(x,y-1);pfill(x+1,y);pfill(x,y+1);}}}

2017-01-21 14:40:11 240

原创 自制3D显示引擎六:填充三角形

//fill triangleint[] x={1,2,3};int[] y={2,1,3};int j,k;int min,max;for(j=0;jk=(j+1+3)%3;pline(x[j],y[j],x[k],y[k]);}//边框已生成int l=min(min(x[0],x[1]),x[2]);int r=max(max(x[0],x

2017-01-21 14:24:35 193

原创 自制3D显示引擎五:画多边形与正多边形

多边形就是有多条边就绘制多少条边。 public void ppolygon(int[] x,int[] y){    int i,k;    for(i=0;i      k=(i+1+x.length)%x.length;      pline(x[i],y[i],x[k],y[k]);    }}  public void pline(int x1,i

2017-01-21 00:31:41 333

原创 自制3D显示引擎四:画圆

仍然是bresenham算法代码public void pcircle(int x,int y,int r){int p=3-2*r,x0=0,y0=rfor(;x0pics[x0+x][y0+y]=setpci;//忽略一步pics[-x0+x][y0+y]=setpci;pics[x0+x][-y0+y]=setpci;pics[-x0+x][-y0+y]=setp

2017-01-21 00:14:50 303

原创 自制3D显示引擎三:画线

这个算法的代码在网上其实有很多,也有一些十分经典的我来贴出我经过自己磨合的一段bresenham代码public void pline(int x1,int y1,int x2 ,int y2){//x1,y1为起点,x2,y2为终点int dx=x2-x1;int dy=y2-y1;int a1=1,a2=1,a3=0;//标识if(dxif(dyif(dxi

2017-01-20 23:04:05 395

原创 自制3D显示引擎:目录

写这个系列纯粹是想知道自己到了哪个环节,并没有打算写的多么多么丰富,多么多么经典。嗯,这是给我自己看的,对,就这样。目录:一:选择开发环境(选择自己最顺手的开发环境,我没有办法替你选择)。二:在屏幕上绘制点(需要预先知道自己设备的屏幕尺寸,防止出现“不知道代码成功运行了没”的情况)2D部分三:画直线(线段)(正式开始)四:画圆五:画多边形、正多边形(只有边框)六

2017-01-20 22:49:39 404

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除