Project1

标题: 你们有没有拿RM做这种事 [打印本页]

作者: kuerlulu    时间: 2014-4-19 20:32
标题: 你们有没有拿RM做这种事
嘛,,在下指的是画函数图象啦...#想歪的不用去面壁#

二次函数

正弦
其它的比如y = x什么的太简单就不放了
脚本在这:
RUBY 代码复制
  1. class Fx
  2.   include Math
  3.   def initialize
  4.     [url=home.php?mod=space&uid=114926]@sprite[/url] = Sprite.new
  5.     @sprite.bitmap = Bitmap.new(640,480)
  6.     @sprite.ox,@sprite.oy = 320,240
  7.     @sprite.x,@sprite.y = 320,240
  8.   end
  9.   def clear
  10.     @sprite.bitmap.clear
  11.   end
  12.   # text = f(x) = "2*x"
  13.   def draw(text)
  14.     for x in -320..320
  15.       y = eval(text)
  16.       @sprite.bitmap.draw_text(x + 320, 240 - y, 22, 22, '.')
  17.     end
  18.   end
  19.   # args = [[x1,y1],[x2,y2]...]
  20.   def lines(*args)
  21.     for i in 1..args.size
  22.       i == args.size ? line(args[i-1], args[0]) : line(args[i-1], args[i])
  23.     end
  24.   end
  25.   def line(pos1, pos2)
  26.     x1,y1 = *pos1
  27.     x2,y2 = *pos2
  28.     (x2-x1).abs.times do | x |
  29.       @sprite.bitmap.draw_text(x1+x+320, 240-x*(y2-y1)/(x2-x1)-y1, 22, 22, '.')
  30.     end
  31.   end
  32.   def transition(color1, color2)
  33.     for x in 0..640
  34.       r = (color1.red*(640-x)   + color2.red*x  )/640
  35.       g = (color1.green*(640-x) + color2.green*x)/640
  36.       b = (color1.blue*(640-x)  + color2.blue*x )/640
  37.       a = (color1.alpha*(640-x) + color2.alpha*x)/640
  38.       @sprite.bitmap.fill_rect(x, 0, 1, 480, Color.new(r,g,b,a))
  39.     end
  40.   end
  41.   # r = 角度 = 30 中心旋转 矩阵变换公式 会造成像素丢失 不如angle
  42.   def turn(r)
  43.     a = @sprite.bitmap
  44.     b = Bitmap.new(a.width*3/2, a.height*3/2)
  45.     for x in 0...a.width
  46.       for y in 0...a.height
  47.         c = a.get_pixel(x, y)
  48.         x1 = (x-a.width/2)*cos(r*PI/180)-(y-a.height/2)*sin(r*PI/180)+a.width/2
  49.         y1 = (x-a.width/2)*sin(r*PI/180)+(y-a.height/2)*cos(r*PI/180)+a.height/2
  50.         b.set_pixel(x1, y1, c)
  51.       end
  52.     end
  53.     @sprite.bitmap = b
  54.   end
  55.   def angle=(r)
  56.     @sprite.angle = 360-r
  57.   end
  58. end
  59.  
  60. f = Fx.new
  61. f.transition(Color.new(0,0,0,255), Color.new(255,255,255,0))
  62. f.draw("sin(x*PI/180)*100")
  63. loop{Graphics.update}

在下好无聊
作者: 日月星辰    时间: 2014-4-19 20:43
没想过。。
1有图形计算器
2有matlab
3有。。。http://www.wolframalpha.com
但是还是要对这个帖子点赞的!
作者: 克莉丝    时间: 2014-4-19 20:44
画函数图象什么的在一开始就用了啦
作者: 晴兰    时间: 2014-4-19 20:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 柳之一    时间: 2014-4-19 22:26
請上主站搜索我的教程。

第一個圖還能畫的更完美
作者: 无双sxa    时间: 2014-4-19 22:35
说实话,没试过,不过要是函数图象能让孩子们开心的话,那我会努力去画的说。
作者: 美丽晨露    时间: 2014-4-19 23:21
我才不会用RM做数学题呢
因为口算比打字要快
作者: 刺夜之枪    时间: 2014-4-20 01:16
用谷歌直接输入
就有了
作者: 轩辕大将军    时间: 2014-4-20 14:15
脚本渣渣路过……啥是函数都忘的一干二净了……
作者: fux2    时间: 2014-4-20 19:45
不密致的线……每个点之间连线不可以吗- -
作者: 876加几    时间: 2014-4-20 19:52
本帖最后由 876加几 于 2014-4-20 20:05 编辑

画函数图像小菜一碟!
其实我还可以用RM画Julia集。(VB可以推广到RB)
以下是VB版(不是VA)

(只是用代码以及密集的点组成的,只画了几秒钟,迭代公式:z=z²+c)

我曾经拿RM算阶乘、算N次连加(乘)等。

其实我早就想这样了,不过是用VB。
作者: 弗雷德    时间: 2014-4-21 13:45
俺都离开学校十三年了,你还指望俺记得些啥(抠
作者: chd114    时间: 2014-4-21 14:53
我算过三角函数···
作者: 945127391    时间: 2014-4-30 11:03
画直线OoO




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1