最近做Box2dWeb开发时,想写个创建正多边形的功能,可是由于学识尚浅,我在草稿纸上画了,想了一个上午也没有研究出什么好方法。后来翻抽屉的时候,找出了以前哥哥画的一张用同心圆画椭圆的示意图。看到这幅画,我不禁在想椭圆不就是一个N边形吗?圆不就是一个正N边形吗?如果把两个同心圆的半径设定为相等,画出来的椭圆不就是一个圆吗?因此,我立刻开始实验。原本我以为比较难,会用到圆的解析式之类的,没想到就45行代码就搞定了,主要用到的数学知识就是sin和cos。...
分类:
其他好文 时间:
2014-10-26 18:27:00
阅读次数:
315
void Bresenham_Ellipse(CDC *pDC, int ox, int oy, int a, int b)//圆心x,圆心y,横长,纵长
{
float d = b*b + a*a*(-b + 0.25);
int x = 0, y = b, fx = a*a / sqrt((float)a*a + b*b);
while (x != fx)
{
if (d < 0)...
分类:
其他好文 时间:
2014-09-02 22:58:05
阅读次数:
1232
libgdx提供了ShapeRenderer这个工具,用它可以画点、画线、画圆、画矩形、画椭圆、画扇形,但是没有提供画圆角矩形的方法。刚开始自己尝试分成8端,4端画直线,4端画扇形,发现多了半径几部分,于是又改成全部画线。4端弧采用逐个描点实现。具体代码:
1 package com.fxb.new...
分类:
其他好文 时间:
2014-05-26 01:23:25
阅读次数:
1713