查看: 2643|回复: 11

如何描绘圆形?

  [复制链接]

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
发表于 2008-2-11 23:54:39 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
如何描绘圆形?
血槽可以用圆来描绘呢`````{/hx}
梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
回帖
1778
发表于 2008-2-12 00:26:01 | 显示全部楼层
找张圆形的图.
中间掏空
四周要有遮挡.
就可以了

或者你用圆的函数重写一个方法
回复

使用道具 举报

冰

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
回帖
1010
发表于 2008-2-12 00:43:09 | 显示全部楼层
http://rpg.blue/web/htm/news843.htm
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2008-2-12 01:24:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-2-12 01:46:16 | 显示全部楼层
class Scene
def draw_line(x1, y1, x2, y2, color)
   if x1 == x2
     x = x1
     for y in (y1 < y2 ? y1..y2 : y2..y1)
       set_pixel(x, y, color)
     end
   else
     a = (y2-y1)/(x2-x1).to_f
     if -1 < a and a < 1
       for x in (x1 < x2 ? x1..x2 : x2..x1)
         y = a * (x - x1) + y1
         set_pixel(x, y, color)
       end
     else
       for y in (y1 < y2 ? y1..y2 : y2..y1)
         x = (y - y1) / a + x1
         set_pixel(x, y, color)
       end
     end
   end
end
end
描绘矩形?????
怎么显示它????
回复

使用道具 举报

冰

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
回帖
1010
发表于 2008-2-12 02:32:55 | 显示全部楼层
以下引用9244579于2008-2-11 17:46:16的发言:

class Scene
def draw_line(x1, y1, x2, y2, color)
  if x1 == x2
    x = x1
    for y in (y1 < y2 ? y1..y2 : y2..y1)
      set_pixel(x, y, color)
    end
  else
    a = (y2-y1)/(x2-x1).to_f
    if -1 < a and a < 1
      for x in (x1 < x2 ? x1..x2 : x2..x1)
        y = a * (x - x1) + y1
        set_pixel(x, y, color)
      end
    else
      for y in (y1 < y2 ? y1..y2 : y2..y1)
        x = (y - y1) / a + x1
        set_pixel(x, y, color)
      end
    end
  end
end
end
描绘矩形?????
怎么显示它????

draw 什么line?


描绘圆形是
class Bitmap
# 描绘圆
def draw_circle(a, b, r, color)
   min = (-r / Math.sqrt(2)).round
   max = ( r / Math.sqrt(2)).round
   for x in min..max
     y = Math.sqrt(r**2 - x**2)
     set_pixel(x+a, y+b, color)
     set_pixel(x+a, -y+b, color)
   end
   for y in min..max
     x = Math.sqrt(r**2 - y**2)
     set_pixel(x+a, y+b, color)
     set_pixel(-x+a, y+b, color)
   end
end
end
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-2-12 02:42:19 | 显示全部楼层
我说怎么显示它呢
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2008-2-12 04:03:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

冰

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
回帖
1010
发表于 2008-2-12 05:11:36 | 显示全部楼层
以下引用9244579于2008-2-11 18:42:19的发言:

我说怎么显示它呢

self.contents.draw_........
回复

使用道具 举报

茄孓

梦石
0
星屑
76
在线时间
140 小时
注册时间
2007-5-29
回帖
820
 楼主| 发表于 2008-2-13 06:02:05 | 显示全部楼层
还是不行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部