| 赞 | 425 |
| VIP | |
| 好人卡 | |
| 积分 | 422 |
| 经验 | |
| 最后登录 | 2026-8-20 |
| 在线时间 | 6017 小时 |
- 梦石
- 0
- 星屑
- 42235
- 在线时间
- 6017 小时
- 注册时间
- 2006-11-10
- 回帖
- 6966
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 灯笼菜刀王 于 2022-2-27 23:57 编辑
我知道两点之间的距离公式 √((x1-x2)^2 + (y1-y2)^2
但是以该值作为宽度 m = Math.sqrt((x1 - x2).abs^2 + (y1 - y2).abs^2) 描绘线条却短很多很多....
而用 m = (x1-x2).abs + (y1-y2).abs 来作为宽度, 却会长很多
请问, 正确公式该怎么做呢?
[pre lang="ruby"]x,y = 111,333
back = RPG::Sprite.new
back.bitmap = Bitmap.new(640,480)
back.bitmap.fill_rect(0,0,640,480,Color.new(0,0,0))
a = RPG::Sprite.new
b = RPG::Sprite.new
c = RPG::Sprite.new
bbb = Bitmap.new(10,10)
bbb.fill_rect(0,0,10,10,Color.new(0,255,255))
a.bitmap = b.bitmap = bbb
a.set_xy(320,240)
b.set_xy(x,y)
c.set_xy(320,240)
#m = Math.sqrt((x - 320).abs^2 + (y - 240).abs^2)
m = (x-320).abs + (y-240).abs
c.bitmap = Bitmap.new(m,1)
c.bitmap.fill_rect(0,0,m,1,Color.new(255,255,255))
d = Math.atan((240-y).abs.to_f/(320-x).abs) / Math::PI * 180
if x < 320 and y > 240 #第三象限
r = -180
elsif x < 320 and y < 240 #第一象限
r = 90
elsif x > 320 and y < 240 #第四象限
r = -90
else
r = 0
end
c.angle = d + r[/pre]
PS: 单纯两点之间画线从雷达图脚本里学到了,它用的是在直线距离上每一个点描绘, 然而我现在想要的是,两点之间连接一张图片, 图片的宽度 = 两点之间的距离, 所以那种方法没办法用~~~ |
|