设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2126|回复: 11
打印 上一主题 下一主题

如何描绘圆形?

 关闭 [复制链接]

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
跳转到指定楼层
1
发表于 2008-2-11 23:54:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何描绘圆形?
血槽可以用圆来描绘呢`````{/hx}

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
2
发表于 2008-2-12 00:26:01 | 只看该作者
找张圆形的图.
中间掏空
四周要有遮挡.
就可以了

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
帖子
1057
3
发表于 2008-2-12 00:43:09 | 只看该作者
http://rpg.blue/web/htm/news843.htm
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

4
发表于 2008-2-12 01:24:52 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
5
 楼主| 发表于 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
描绘矩形?????
怎么显示它????
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
帖子
1057
6
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
7
 楼主| 发表于 2008-2-12 02:42:19 | 只看该作者
我说怎么显示它呢
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

8
发表于 2008-2-12 04:03:21 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
142
在线时间
264 小时
注册时间
2006-11-22
帖子
1057
9
发表于 2008-2-12 05:11:36 | 只看该作者
以下引用9244579于2008-2-11 18:42:19的发言:

我说怎么显示它呢

self.contents.draw_........
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
10
 楼主| 发表于 2008-2-13 06:02:05 | 只看该作者
还是不行
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-2 23:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表