请教大神:如何能给球形网格贴图或添加色彩,谢谢!!!

问题描述

下面这是从网上下的一个画立体球形的类,请教如何能为他贴图或添加色彩,谢谢!!!publicclassSphere{publicGeometry.Point[,]points;intm_Lat;intm_Lon;publicSphere(intm,intn){m_Lat=m;m_Lon=n;doubledi=(Math.PI*2.0)/(double)m;doubledt=(Math.PI*2.0)/(double)n;points=newGeometry.Point[m,n];doubleai=0;for(inti=0;i<m;i++){doubleat=0;for(intj=0;j<n;j++){doublex=Math.Sin(ai)*Math.Cos(at);doubley=Math.Sin(ai)*Math.Sin(at);doublez=Math.Cos(ai);points[i,j]=newPoint(x,y,z);at+=dt;}ai+=di;}}publicvoidScale(doublescale){for(inti=0;i<m_Lat;i++){for(intj=0;j<m_Lon;j++){points[i,j]=newPoint(points[i,j].x*scale,points[i,j].y*scale,points[i,j].z*scale);}}}publicvoidTranslate(Vectortranslate){for(inti=0;i<m_Lat;i++){for(intj=0;j<m_Lon;j++){points[i,j]=newPoint(points[i,j].x+translate.x,points[i,j].y+translate.y,points[i,j].z+translate.z);}}}internalvoidDraw(CameraoCamera1,System.Drawing.Graphicsg,Rectanglerect,doublefMax,Colorcolor){Penpen=newPen(color);for(inti=0;i<m_Lat;i++){for(intj=0;j<m_Lon;j++){intiplus1=i+1;if(iplus1==m_Lat)iplus1=0;intjplus1=j+1;if(jplus1==m_Lon)jplus1=0;Pointa=newPoint(points[i,j]);Pointb=newPoint(points[iplus1,j]);Pointc=newPoint(points[iplus1,jplus1]);Pointd=newPoint(points[i,jplus1]);Geometry.PointpointAux1=oCamera1.GetProjectedMappedPoint(a);Geometry.PointpointAux2=oCamera1.GetProjectedMappedPoint(b);Geometry.PointpointAux3=oCamera1.GetProjectedMappedPoint(c);Geometry.PointpointAux4=oCamera1.GetProjectedMappedPoint(d);if(pointAux1!=null&&pointAux2!=null&&pointAux3!=null&&pointAux4!=null){doublex1=rtPoint.GetCoord(-fMax,fMax,rect.Left,rect.Right,pointAux1.x);doubley1=rtPoint.GetCoord(-fMax,fMax,rect.Left,rect.Right,pointAux1.y);doublex2=rtPoint.GetCoord(-fMax,fMax,rect.Left,rect.Right,pointAux2.x);doubley2=rtPoint.GetCoord(-fMax,fMax,rect.Left,rect.Right,pointAux2.y);doublex3=rtPoint.GetCoord(-fMax,fMax,rect.Left,rect.Right,pointAux3.x);doubley3=rtPoint.GetCoord(-fMax,fMax,rect.Left,rect.Right,pointAux3.y);doublex4=rtPoint.GetCoord(-fMax,fMax,rect.Left,rect.Right,pointAux4.x);doubley4=rtPoint.GetCoord(-fMax,fMax,rect.Left,rect.Right,pointAux4.y);g.DrawLine(pen,(int)x1,(int)y1,(int)x2,(int)y2);g.DrawLine(pen,(int)x2,(int)y2,(int)x3,(int)y3);g.DrawLine(pen,(int)x3,(int)y3,(int)x4,(int)y4);g.DrawLine(pen,(int)x4,(int)y4,(int)x1,(int)y1);}}}pen.Dispose();}

解决方案

解决方案二:
fillrectangle
解决方案三:
谢谢!!!wawd74520:能否告知fillrectangle该添加何处吗,如何添加,我是一名刚从vb.net转向c#的菜鸟,谢谢!!!
解决方案四:
你92-95为什么是画四条线,而不是画四边形呢?四边形不就可以充填了吗?

时间: 2024-07-29 11:34:28

请教大神:如何能给球形网格贴图或添加色彩,谢谢!!!的相关文章

html-本人菜鸟一枚,请教大神一个关于CSS中ID和类选择器不能用,而标签选择器能用的问题

问题描述 本人菜鸟一枚,请教大神一个关于CSS中ID和类选择器不能用,而标签选择器能用的问题 FIREFOX浏览器,代码如下: HTML代码片段: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @import url(template/default/styl

通讯录-新手请教大神们一个问题。

问题描述 新手请教大神们一个问题. 刚学习android,想做一个关于短信的小应用,我想在通讯录获得联系人,但是不是获得一个联系人,也不是全部的,就想调用那个短信群发的时候会跳转到的可以多选联系人界面上,如果是普通的通讯录我会调用: Intent intent = new Intent(Intent.ACTION_PICK ContactsContract.Contacts.CONTENT_URI); 但是调用那个多选联系人的通讯录界面我就不会了.百度也没找到有关的资料,所以请教一下各位大神!谢

hyper v-Hyper-v远程连接问题,请教大神。

问题描述 Hyper-v远程连接问题,请教大神. #define CHK_HRES(op) { HRESULT tmp_hresult___ = op; if (FAILED(tmp_hresult___)) throw CAtlException(tmp_hresult___); } void CChildDlg7::OnHyper_v(){ //CHK_HRES(pObject->Method()); CComBSTR namespacePath = L"\\"; CStri

HttpURLConnection异常 请教大神

问题描述 HttpURLConnection异常 请教大神 URL url = new URL(strUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("POST");DataOutputStream out = new DataOutputStream( conn

请教大神一个问题,jboss集成netty 有人知道咋弄吗

问题描述 请教大神一个问题,jboss集成netty 有人知道咋弄吗 我想把netty集成到jboss容器里,有人知道怎么弄嘛?谢谢各位了 解决方案 难道没有大神?? 很捉急啊?拜托拜托啊 解决方案二: Netty是由JBOSS提供的一个java开源框架,你直接在eclipse里开发使用就行了,应用服务器可以使用Jboss或者其它的 不需要把netty直接集成到jboss容器里 解决方案三: 关于netty学习的例子,可以参考以下链接 http://mushiqianmeng.blog.51ct

resultset可...-请教大神关于sql 的问题

问题描述 请教大神关于sql 的问题 sql中,如果有两条一样的数据,根据某个字段的不同,去最小的一条数据插入表中怎么写 ? 解决方案 向各位大神请教个问题 解决方案二: insert into tablename() value(select name from tablename where arg1<arg2); 解决方案三: insert(字段) into table (select 字段 from table where 条件) 解决方案四: 使用min函数试试看看 解决方案五: 先用

for-有个 关于 Collections.sort 排序的问题 请教大神门哈

问题描述 有个 关于 Collections.sort 排序的问题 请教大神门哈 for (RefractionCollection collection : refractionCollections) { List<RefractionCollection> list2 = new ArrayList<RefractionCollection>(); list2.add(collection); Collections.sort(list2); } 假设现在 这个list 2

补丁-本人linux小白,请教大神

问题描述 本人linux小白,请教大神 在ubuntu系统安装gcc时,如果要使编写的程序同时能在windows运行,需要安装几个补丁(如下),找到一个英文指导书,但里面有个地方不理解,截图如下: 这些图片中的'~/tools/mingw32/'.'~/tools/mingw32-binutils/'. '~/tools/mingw32-runtime/' 这三个文件夹在哪儿啊?是要自己创建吗? 解决方案 图片中的'~/tools/mingw32/'.'~/tools/mingw32-binut

MYSQL查询。。请教大神~~~

问题描述 MYSQL查询..请教大神~~~ 解决方案 http://www.cnblogs.com/luowende2012/archive/2012/07/19/2599436.html 解决方案二: select a1 ,(select count(*) from 表 where 主岗=t.a1) 主岗次数 ,(select count(*) from 表 where 副岗=t.a1) 副岗次数 ,(select count(*) from 表 where 交易岗=t.a1) 交易岗次数 ,