球面参数方程

球面的参数曲线可以用球坐标表示,引入参数u,v,其中v是球面点与原点的连线与z轴正向的夹角,u表示连线在xy平面的投影与x轴正向的夹角

球面法向量

已知球面的参数方程以后,很容易求得给定点的法向量,分别对u和v方向求偏导数
,然后对两个所得向量进行叉积即可:

osg::Vec3 getPoint(double u, double v)
{double x = sin(osg::PI*v)*cos(osg::PI*2*u);double y = sin(osg::PI*v)*sin(osg::PI * 2 *u);double z =  cos(osg::PI*v);return osg::Vec3(x, y, z);
}//主函数osg::ref_ptr<osg::Geode> geode = new osg::Geode();osg::ref_ptr<osg::Vec3Array> vertices = new osg::Vec3Array();osg::ref_ptr<osg::Geometry> triGeom = new osg::Geometry();geode->addDrawable(triGeom);int uStepsNum = 50, vStepNum = 50;double ustep = 1 / (double)uStepsNum, vstep = 1 / (double)vStepNum;double u = -0, v = -0;int count = 0;for (int i = 0; i < uStepsNum; i++){osg::Vec3 a = getPoint(0, 0);osg::Vec3 b = getPoint(u, vstep);osg::Vec3 c = getPoint(u + ustep, vstep);vertices->push_back(a);vertices->push_back(b);vertices->push_back(c);triGeom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_LOOP, count, 3));count += 3;u += ustep;}//绘制中间四边形组u = 0, v = vstep;for (int i = 1; i < vStepNum - 1; i++){for (int j = 0; j < uStepsNum; j++){osg::Vec3  a = getPoint(u, v);osg::Vec3  b = getPoint(u + ustep, v);osg::Vec3  c = getPoint(u + ustep, v + vstep);osg::Vec3  d = getPoint(u, v + vstep);vertices->push_back(a);vertices->push_back(b);vertices->push_back(c);vertices->push_back(d);triGeom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_LOOP, count, 4));count += 4;u += ustep;}v += vstep;}//绘制下端三角形组u = 0;for (int i = 0; i < uStepsNum; i++){osg::Vec3  a = getPoint(0, 1);osg::Vec3  b = getPoint(u, 1 - vstep);osg::Vec3 c = getPoint(u + ustep, 1 - vstep);vertices->push_back(a);vertices->push_back(b);vertices->push_back(c);triGeom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_LOOP, count, 3));count += 3;u += ustep;}triGeom->setVertexArray(vertices);m_root->addChild(geode);

参考:

opengl:绘制球体_溪水流不停的博客-CSDN博客_opengl 球体

OSG 球体参数方程绘制相关推荐

  1. OpenGL进阶(四)-用参数方程绘制椭球体

    首先参考这篇文章绘制一个球体:OpenGL 用参数方程绘制球 我们知道球体的参数方程是这样的: x=r·sin(α)·cos(β) y=r·sin(α)·sin(β) z=r·cos(α) 椭圆的参数 ...

  2. Matlab 利用参数方程绘制空心球体

    基本原理: 实质为利用球面参数方程,利用网格化数据绘制 x=R*sin(theta)*cos(phi) y=R*sin(theta)*sin(phi) z=R*cos(theta) 绘制函数: fun ...

  3. OSG计算并绘制模型中每一个三角面片的法向量

    由于项目需要,需要获取三维模型每一个三角面片的法向量出来,但是可惜的是OSG中并没有直接提供获得模型基元法向量的方法,无奈之下,只能自己研究源码,终于在自动生成法向量的源码中得到了启发,并绘制成功. ...

  4. MATLAB绘制任意密度的球体并且绘制颜色

    使用MATLAB可以绘制各种几何体,赋予他们型状与颜色.这里主要附上如何绘制球体,并且任意绘制颜色. clc clear %假设两个模块之间接触点坐标为(x0,y0,z0),绘图主体模块球中心 %坐标 ...

  5. threejs 绘制球体_ThreeJs 绘制点、线、面

    所有的三位物体都是由点构成,两点构成线,三点构成面,ThreeJs又如何绘制出点.线.面呢 ? 在ThreeJs中: 模型由几何体和材质构成 模型以何种形式(点.线.面)展示取决于渲染方式 1. 几何 ...

  6. OSG使用OpenGL(以及glad库)绘制自定义图形

    简单记录一下在OSG中使用OpenGL函数(以及glad库)绘制自定义图形. 源码: #include <osgViewer/viewer> #include <osg/Geode& ...

  7. 【愚公系列】2022年09月 微信小程序-three.js绘制球体

    文章目录 前言 一.Three.js的使用 1.球体的绘制 二.球体相关js文件 三.效果图 四.总结 前言 Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄 ...

  8. matlab火星漫游车转向控制,OSG开发笔记(二十四):OSG漫游之平移与转向

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:https://blog.csdn.net/qq21497936/ ...

  9. matlab绘制y x 3 x 1,怎样画x^2+(y-x^(2/3))^2=1的图像,用matlab可以吗?代码是什么?...

    答:也可以用MathCAD MathCAD可以像Word那样方便的输入各种公式,并且公式的写法同手写方式是完全一致的.绘图等更不在话下.如果是教学,撰文等,MathCAD比Matlab好用. 如上.祝 ...

最新文章

  1. WKWebView 实现iOS与H5的交互转
  2. docker增加端口映射_docker配置lamp环境笔记
  3. 案例实操-Top10热门品类
  4. 网银爬虫系统(爬取网银流水,爬取网银余额)难点分析
  5. 计算机网络基础知识应用题,计算机网络试题及答案共十套
  6. 【转】打造个性化ghostxp光盘另类教程(3)
  7. 电子凸轮追剪曲线生成算法
  8. 评分卡分箱原则及单调性
  9. CTF PWN-攻防世界XCTF新手区WriteUp
  10. 2021年全球天然橡胶行业供需现状分析:需求量迎来恢复性增长,中国市场需求量占比超40%[图]
  11. 2019,苹果艰难又关键的一年
  12. win10系统可禁用的服务器,window10哪些服务可以禁止
  13. py-eureka-client学习笔记
  14. 《趣味知识博文》小W与小L带你聊天式备考CDA Level Ⅰ(二)
  15. 紧急通知,您的苹果手机可能已经安装了木马软件
  16. 华为云平台架构名词解释
  17. 工作日志-2017年06月04日
  18. tomcat网页乱码
  19. 凯斯西储大学(CWR) 轴承数据
  20. nrf51822 --- 外部中断 (按键)

热门文章

  1. 习题 2-2 韩信点兵 (hanxin)(C语言版)
  2. Python入门到实战(五)自动化办公、pandas操作Excel、数据可视化、绘制柱状图、操作Word、数据报表生成、pip install国内镜像下载
  3. overlay文件系统解析
  4. PERCENT(SQL)
  5. html语言设置网页名称,HTML语言范例
  6. 周杰伦2015魔天伦2世界巡回演唱会各站曲目歌单(完结)
  7. 《冰封王座》世界魔兽界十大叱咤风云人物
  8. HTML Help Workshop(chm生成工具)的使用
  9. python爬虫微博24小时热搜_Python爬虫之微博热搜
  10. endcap和welltap_Physical only cell的介绍