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

Project1

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

[已经解决] 請問如何給BITMAP類增加一個會制填滿圓形的命令?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
跳转到指定楼层
1
发表于 2012-6-15 20:31:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
這是我在古老的帖子中找到的話圓圈的方法
  1. class Bitmap
  2. # 描绘圆
  3. def draw_circle(a, b, r, color)
  4.    min = (-r / Math.sqrt(2)).round
  5.    max = ( r / Math.sqrt(2)).round
  6.    for x in min..max
  7.      y = Math.sqrt(r**2 - x**2)
  8.      set_pixel(x+a, y+b, color)
  9.      set_pixel(x+a, -y+b, color)
  10.    end
  11.    for y in min..max
  12.      x = Math.sqrt(r**2 - y**2)
  13.      set_pixel(x+a, y+b, color)
  14.      set_pixel(-x+a, y+b, color)
  15.    end
  16. end
  17. end
复制代码
不過我想要的是內部填滿的圓形...
請問有大大能幫忙調整嗎?

点评

另写dll吧,逐像素描绘效率太低了  发表于 2012-6-15 21:04

Lv4.逐梦者

梦石
0
星屑
7946
在线时间
1182 小时
注册时间
2007-7-29
帖子
2055
2
发表于 2012-6-16 08:50:55 | 只看该作者
  1. def draw_circle(a, b, r, color)
  2.    min = (-r / Math.sqrt(2)).round
  3.    max = ( r / Math.sqrt(2)).round
  4.    for x in min..max
  5.      y = Math.sqrt(r**2 - x**2)
  6.      fill_rect(x+a,-y+b,1,(2*y).ceil,color)
  7.      #set_pixel(x+a, y+b, color)
  8.      #set_pixel(x+a, -y+b, color)
  9.    end
  10.    for y in min..max
  11.      x = Math.sqrt(r**2 - y**2)
  12.      fill_rect(-x+a,y+b,(2*x).ceil,1,color)
  13.      #set_pixel(x+a, y+b, color)
  14.      #set_pixel(-x+a, y+b, color)
  15.    end
  16. end
复制代码
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 03:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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