类的规划问题

勇敢的搬砖人 2010-05-13 10:06:16
我正在做一个人手建模的程序,用OpenGL做,但是不知道怎么安排类。
这个程序主要是把人手Hand显示出来,而人手Hand包括手掌Palm、手指Fingers,手指包括Index、Middle、Ring、Little、Thumb,其中拇指Thumb和其他手指的建模区别就是它有2个指关节,其他手指都是3个。

/*
只是我根据类组合的概念及老师的提示写出的Hand类,仅供大家的参考,我现在还不知道每个手指的显示程序
怎么安排,是否需要每个Finger包括Index、Middle、Ring、Little、Thumb都建立一个派生类呢?
*/
class Hand
{
pubic:
Palm m_palm;
Finger m_index,m_middle,m_ring,m_little ;
void display();
}
...全文
544 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
勇敢的搬砖人 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 findcsdn 的回复:]
8楼的分类应该可以的。

class Finger
{
virtual void display(); //虚函数
void drawsect(); //绘制手指一节,可以供派生类调用
}
[/Quote]
这样对吗:http://topic.csdn.net/u/20100514/22/a0306fbb-4006-49d3-b339-c3ef8eb347aa.html?017020409443266288
sinosinux 2010-05-14
  • 打赏
  • 举报
回复
两个类:手 + 手指 不同的手指以属性区别,不许使用继承
sixbusy 2010-05-14
  • 打赏
  • 举报
回复
是否需要每个Finger包括Index、Middle、Ring、Little、Thumb都建立一个派生类呢 ?

我觉得不用,一个finger 一个Display 就可以了! 可以设定几个属性 ,不如长度,关节数等等!
findcsdn 2010-05-14
  • 打赏
  • 举报
回复

8楼的分类应该可以的。

class Finger
{
virtual void display(); //虚函数
void drawsect(); //绘制手指一节,可以供派生类调用
}

huangjn213 2010-05-14
  • 打赏
  • 举报
回复
finger构造函数声明时给初始值
Finger(长度=?, 关节数=3)

实例化时拇指传个关节数参数
然后无论显示还是什么别的 你可以通过遍历关节数来操作
zenny_chen 2010-05-14
  • 打赏
  • 举报
回复
呵呵。当你不知道如何创建类的时候就不要去想类。
而且像8楼代码中调那么多次Display显然比较低效。可以的话还是用显示列表,呵呵。
zenny_chen 2010-05-14
  • 打赏
  • 举报
回复
呵呵。当你不知道如何创建类的时候就不要去想类。
而且像8楼代码中调那么多次Display显然比较低效。可以的话还是用显示列表,呵呵。
勇敢的搬砖人 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xianglitian 的回复:]
我觉得你可以边做边完善
设计这个东西就是在不断地实践中去改进的
[/Quote]
说得有道理,谢谢了。
勇敢的搬砖人 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 findcsdn 的回复:]
手指虚类,其他手指继承这个虚类。
因为每个手指的display函数都不一样的,所以这样搞好一点。
如果用一个类实现的话,display里也要用switch来分,何必呢。

手掌也建一个类,里面包含5个手指元素。
[/Quote]

/*
是这样吗?
我原来学的是C,毕设是用让用C++编人手建模程序,图形是用OpenGL做,现在有
一种心有余而心不足的感觉,我一直也在看,老师在催进度,愁死了。
最后编的程序要和数据手套实现交互,所以各个关节得是能动的,大虾能不能给点提示。
*/

class Hand
{
pubic:
Palm m_palm;
Finger ;m_index,m_middle,m_ring,m_little ;
void display();
}

class Finger
{
//...
}

class Index:pubic Finger
{
display();
}

class Middle:pubic Finger
{
display();
}

class Ring:pubic Finger
{
display();
}

class Little:pubic Finger
{
display();
}

class Palm
{
display();
}
向立天 2010-05-14
  • 打赏
  • 举报
回复
我觉得你可以边做边完善
设计这个东西就是在不断地实践中去改进的
勇敢的搬砖人 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 findcsdn 的回复:]
手指虚类,其他手指继承这个虚类。
因为每个手指的display函数都不一样的,所以这样搞好一点。
如果用一个类实现的话,display里也要用switch来分,何必呢。

手掌也建一个类,里面包含5个手指元素。
[/Quote]
那大拇指需不需要另外建立一个手指虚类呢?
findcsdn 2010-05-14
  • 打赏
  • 举报
回复

手指虚类,其他手指继承这个虚类。
因为每个手指的display函数都不一样的,所以这样搞好一点。
如果用一个类实现的话,display里也要用switch来分,何必呢。

手掌也建一个类,里面包含5个手指元素。

勇敢的搬砖人 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sixbusy 的回复:]
是否需要每个Finger包括Index、Middle、Ring、Little、Thumb都建立一个派生类呢 ?

我觉得不用,一个finger 一个Display 就可以了! 可以设定几个属性 ,不如长度,关节数等等!
[/Quote]

上面的回复有若干别字,请看下面的:

你的意思是每个finger都创建一个display函数?那表示长度,关节数的属性怎么做?可以用Index举个例子说明一下吗?谢谢!!
勇敢的搬砖人 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sixbusy 的回复:]
是否需要每个Finger包括Index、Middle、Ring、Little、Thumb都建立一个派生类呢 ?

我觉得不用,一个finger 一个Display 就可以了! 可以设定几个属性 ,不如长度,关节数等等!
[/Quote]

谢谢你的回答!
你的意思是每个finger都创建一个display函数,你说的表示长度,关节输掉属性怎么做?可以用Index举个例子说明一下,谢谢!!

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧