乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 33|回复: 1

用插补的方法把"B样条曲线"进行插补输出到雕刻机进行刻绘?

[复制链接]

5

主题

10

帖子

2

银币

初来乍到

Rank: 1

铜币
30
发表于 2005-1-7 09:14:00 | 显示全部楼层 |阅读模式
小弟在做的图形输出。
我现在需要用插补的方法把"B样条曲线"进行插补输出到雕刻机进行刻绘。现在遇到困难。
我的算法如下:
Dim n As Integer         '样条曲线控制点数
Dim u(5), v(5) As Double          'x,y坐标
Private Sub Command3_Click()
Picture1.Scale (0, 0)-(800, 600)
u(0) = 57: v(0) = Picture1.ScaleHeight - 83
u(1) = 190: v(1) = Picture1.ScaleHeight - 442
u(2) = 259: v(2) = Picture1.ScaleHeight - 5
u(3) = 461: v(3) = Picture1.ScaleHeight - 505
u(4) = 449: v(4) = Picture1.ScaleHeight - 123
n = 5
b_spLine n
End Sub
Private Sub b_spLine(n As Integer)
Dim i, j, k As Integer
Dim b(4, 10), x(10), y(10) As Double
num = 10
For i = 1 To 10
t = i / num
b(0, i) = (1 - t) * (1 - t) * (1 - t) / 6
b(1, i) = (t - 2) * t * t / 2 + 2 / 3
b(2, i) = (1 + t - t * t) * t / 2 + 1 / 6
b(3, i) = t * t * t / 6
Next i
For i = 1 To n
x(i) = u(i - 1): y(i) = v(i - 1)
Next i
x(0) = 2 * x(1) - x(2): y(0) = 2 * y(1) - y(2)
x(n + 1) = 2 * x(n) - x(n - 1): y(n + 1) = 2 * y(n) - y(n - 1)
Picture1.PSet (x(1), y(1))
For i = 0 To n - 2
        For j = 1 To 10
                          xe = 0: ye = 0
                          For k = 0 To 3
                                   xe = xe + b(k, j) * x(i + k): ye = ye + b(k, j) * y(i + k)
                          Next k
                          Picture1.Line -(xe, ye)
        Next j
Next i
End Sub
该算法是利用AUTOCAD的DXF文件中的控制点数据进行插补的,可是画出的图形与AUTOCAD中的图形不完全相同。望有经验的帮帮我,万分着急!
回复

使用道具 举报

0

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
2
发表于 2005-1-8 19:38:00 | 显示全部楼层
Dim u(5), v(5) As Double          'x,y坐标
vb里这样定义好象是有问题的吧?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-16 18:42 , Processed in 1.149193 second(s), 56 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表