轮子真是一个永远的话题

轮子是一个永远都说不完的话题,总有一帮子人在哪里叫嚷:“不要重复发明轮子”,然而事情总是有其对立的一面的,还有另外一帮子人在那里不停的发明轮子。好像永远都没有一个定论来标明是否还需要另外一个轮子。

如果说要拿轮子来举例子,那不防看看真实的轮子:
1 最早的时候拿木棍来当轮子搬运重物。
2 然后发展到木头做马车的轮子
3 再发展到木轮子上来包一层东西来减震之类
•••••••••
n 在到现在各种各样的轮子。

由此可见轮子是在一个不断的进步过程之中,为什么轮子在进步,因为人们需要,所以重新发明新轮子是人们的需要决定的。
那么java里面的轮子呢,为什么要重复发明java里的轮子,还是人们需要,就从mvc框架来说,就有几百个轮子,各有个的特色,大有三百分天下之势,但是天下之事,分久必和,和久必分,现在这个mvc的轮子好像变少了,struts和webwork就合并了,据说struts2.0.3还是一个0配置的mvc框架,还有什么智能action,能够大大简化开发,可见这个轮子也进步了,轮子更先进了。

那为什么又有人嚷着不要发明轮子呢,认为重新发明轮子代价高,这也未尝没有道理啊,比如说现在的公司,用个工作流还要自己开发,结果开发出来的工作流所谓的“引擎”功能及其的简陋,还说能够满足项目需要,那么这么个简陋的引擎能做的事,外面那些工作流引擎不能做吗(如果真是这样,那mq和jbpm也太蹩脚了吧),人家能做的事,你还要重新做一边,而且做的比人家差的多。虽然是这样,但是借口也是要的:客户不要用开源的东西。听到这里真的很无语,为什么要这么说呢,因为spring+hibernate都是开源的,两个大头用了开源的,居然还好意思说不要用开源的,搬石头砸自己的脚(ok,不抱怨了)。这样做的后果就是整个项目中的工时变长了,加班的时间变多了,客户觉得我们慢了,那么这样做对项目有什么优点吗,暂时还真没有想到。

回到轮子的问题上来吧,那么还要发明轮子吗,要! 别重复发明轮子了,对!如果是做项目,还是拿来主义吧(技术型公司除外),如果是现有的轮子不能满足需要,还是再发明一个吧,还有最重要的一点,如果你觉得现在的哪些轮子不够好,你有更好的想法,那就更需要去再发明一个更好的轮子了。
### 回答1: 以下是使用SharpGL绘制一个轮子的示例代码。此代码假定您已经在Visual Studio中创建了一个SharpGL项目并配置了必要的引用。 ```csharp using SharpGL; public partial class Form1 : Form { private OpenGL gl; public Form1() { InitializeComponent(); gl = openGLControl.OpenGL; } private void openGLControl_OpenGLDraw(object sender, RenderEventArgs e) { gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT); gl.LoadIdentity(); gl.Begin(OpenGL.GL_TRIANGLE_FAN); gl.Color(0.7f, 0.7f, 0.7f); gl.Vertex(0.0, 0.0); for (double angle = 0.0; angle <= 2.0 * Math.PI; angle += Math.PI / 6.0) { double x = 0.5 * Math.Sin(angle); double y = 0.5 * Math.Cos(angle); gl.Vertex(x, y); } gl.End(); gl.Begin(OpenGL.GL_TRIANGLE_STRIP); gl.Color(0.5f, 0.5f, 0.5f); for (double angle = 0.0; angle <= 2.0 * Math.PI; angle += Math.PI / 6.0) { double x = 0.5 * Math.Sin(angle); double y = 0.5 * Math.Cos(angle); gl.Vertex(x, y, -0.25); gl.Vertex(x, y, 0.25); } gl.Vertex(0.0, 0.5, -0.25); gl.Vertex(0.0, 0.5, 0.25); gl.End(); } } ``` 这个示例使用了OpenGL的基本图元`GL_TRIANGLE_FAN`和`GL_TRIANGLE_STRIP`。它将一个圆形绘制在xy平面上,并将另一个圆柱体连接到圆形上,形成一个轮子。圆柱体由多个三角形带组成,其中每个三角形带都是一个矩形,包含相邻两个垂直圆柱体表面的四个顶点。`GL_TRIANGLE_FAN`用于绘制圆形,`GL_TRIANGLE_STRIP`用于绘制圆柱体。 ### 回答2: 使用SharpGL绘制一个轮子可以分为以下几个步骤: 1. 初始化OpenGL环境:创建OpenGL控件,并设置视口(Viewport),投影透视矩阵和模型视图矩阵。 2. 绘制外圆环:使用OpenGL的画线函数(glBegin()和glEnd())绘制一个圆环,可以通过设置画线宽度和颜色来调整外圆环的样式。 3. 绘制内圆环:在外圆环的基础上,通过重新设置画线宽度和颜色,绘制一个半径较小的内圆环,形成轮子的中空效果。 4. 绘制轮辐:使用OpenGL的画线函数和旋转变换(glRotatef())来绘制轮子的辐条。可以根据需要确定辐条的数量和角度,保证轮辐均匀分布在轮子的内外圆环之间。 5. 绘制轴承:为了增加轮子的真实感,可以绘制一个中间的轴承结构。可以使用OpenGL的绘制几何体函数(如glutWireTorus())绘制一个环状结构。 6. 设置光照效果:可以使用OpenGL的光照函数(如glEnable(GL_LIGHTING)和glLightfv())来为轮子添加适当的光照效果,增强其视觉效果。 7. 渲染轮子:在完成上述绘制步骤后,将所有图形元素组合起来,并在OpenGL控件上进行渲染,使轮子显示在屏幕上。 以上是使用SharpGL绘制一个轮子的简要步骤说明,具体的实现过程可以根据个人的需求和具体应用场景进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值