技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 262|回复: 0
收起左侧

【VFB源码】FB图形例题3D旋转

[复制链接]

47

主题

68

帖子

594

积分

用户组: 大·技术宅

UID
3260
精华
7
威望
12 点
宅币
466 个
贡献
1 次
宅之契约
0 份
在线时间
19 小时
注册时间
2017-12-26
发表于 2018-3-8 22:56:36 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
1520520158768235.jpg
这是 FB 自己内部绘图专用函数画的动画
当然可以用翻译为 GDI画,这里只是演示代码运行方式
感兴趣的可以下载源码研究。
基本代码:
[Visual Basic] 纯文本查看 复制代码
  ScreenRes 800, 600, 32
  
  Dim As Long fps
  ReDim As V3 Va()
  Dim As String d = "ABCD"
  Randomize 13
  AddABox(va(), Type < V3 > (400, 300, 0), 350, 2, 2, RGB(250, 100, 0)) 'skewer
  'flip 90 degrees on y axis
  memcpy(@va(LBound(va)), RotateArray(va(), Type < _float > (0, 1.570796, 0), vct(400, 300, 0), 0), (UBound(va) - LBound(va) + 1) *SizeOf(v3))
  'Add text
  For n As Long = 0 To Len(d) -1
      Var zv = map(0, (Len(d) -1), n, -250, 250)
      AddAChar(Va(), Chr(d[n]), 150, RGB(Rnd * 255, Rnd * 255, Rnd * 255), "Arial", FS_BOLD, zv)
  Next n
  'knob at the end
  addasphere(va(), Type < V3 > (400, 300, -350), 30, RGB(200, 200, 0), 1)
  
  Dim As Single ang, rad
  Dim As v3 Ptr rr
  
  Color, RGB(100, 100, 100)
  Do
      ang += .025
      If ang > 1.570796 * 4 Then ang = 0 '2*pi
      rr = RotateArray(va(), Type < _float > (.5, ang, 0), vct(400, 300, 0), 1)
      quicksort(rr, 0, UBound(va) -1)
      ScreenLock
      Cls
      Draw String(10, 10), "FPS =" & fps
      Draw String(10, 30), "Elements = " & UBound(va)
      
      For n As Long = LBound(va) -1 To UBound(va) -1
          rad = map( -500, 500, rr[n].z, 5, 2)
          Circle(rr[n].x, rr[n].y), rad, rr[n].col, , , , f
      Next n
      ScreenUnlock
      Sleep Regulate(30, fps), 1
  Loop Until Len(Inkey)

源码下载:Basic语言编程群 78458582 进QQ群后,在群共享里下载。

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号|网站地图

GMT+8, 2018-10-19 10:35 , Processed in 0.093897 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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