乐筑天下

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

请问,这段绘制动态函数曲线的程序错在那里?请帮助改正

[复制链接]

7

主题

18

帖子

4

银币

初来乍到

Rank: 1

铜币
46
发表于 2004-2-25 08:56:00 | 显示全部楼层 |阅读模式
请问各位高手,我用VBA编了一段利用多段线绘制从固定点(x1,y1,z1) 到当前鼠标位置的动态函数曲线------y=k*(x-x1)^2+y1 的程序,可是却无法执行,请问错在那里?多谢指教!
****************************
Sub pl()
Dim p1(0 To 2) As Double
Dim p2 As Variant
Dim pntobj As Variant
Dim lobj As AcadLWPolyline
Dim vers(0 To 2000) As Double
Dim k As Double
Dim g As Double
Dim b As Double
Dim x1 As Double
Dim y1 As Double
Dim x As Double
Dim y As Double
Dim i As Double
Dim a As Double
Dim l As Double
Dim m As Double
Dim n As Double
g = 32.7718 / 1000
b = 68.5036
k = g / (2 * b)
l = 100
m = 100
n = 0
p1(0) = l
p1(1) = m
p1(2) = n
p2 = ThisDrawing.Utility.GetPoint(, "p2")
x1 = (p2(1) - m + k * l ^ 2 - k * p2(0) ^ 2) / (2 * k(l - p2(0)))
y1 = m - k * (l - x1) ^ 2
vers(0) = l
vers(1) = m
i = l
a = 2
If i  p1(0)
         x = p1(0) - i
         y = k * ((x - x1) * 10) ^ 2 + y1
         i = i - 0.5
         vers(a) = x
         vers(a + 1) = y
         a = a + 2
         Wend
End If
'确定函数曲线的最后一点
vers(a) = p2(0)
vers(a + 1) = p2(1)
'利用多义线绘制动态函数曲线
Set lobj = ThisDrawing.ModelSpace.AddLightWeightPolyline(vers)
End Sub
回复

使用道具 举报

28

主题

117

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
229
发表于 2004-2-25 09:04:00 | 显示全部楼层
是不是在两点中间画抛物线呢?在(中间插几个点呢?或者是由间隔距离来控制?)
回复

使用道具 举报

7

主题

18

帖子

4

银币

初来乍到

Rank: 1

铜币
46
发表于 2004-2-25 09:21:00 | 显示全部楼层
在一个已知的固定点、和当前的活动鼠标所在的动态点之间画抛物线,中间点的选取由间隔距离来控制!请问大侠该如何编程?
回复

使用道具 举报

28

主题

117

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
229
发表于 2004-2-25 12:04:00 | 显示全部楼层

抛物线的编程不难,关键是你表达不清楚!过两点是不能确定唯一的抛物线的,"中间点的选取由间隔距离来控制!"是什么意思?!
回复

使用道具 举报

7

主题

18

帖子

4

银币

初来乍到

Rank: 1

铜币
46
发表于 2004-2-25 14:27:00 | 显示全部楼层
在要绘制的抛物线: y=k*(x-x1)^2+y1 中,已知曲线上的一个固定点的坐标、和参数k的值,要绘制一条同时通过当前活动鼠标的动态坐标点的动态抛物线。中间的点的坐标的选取由循环语句控制:按x坐标每增加或减少i值进行取点。关键是如何获得活动鼠标的动态坐标值;请问各位大侠,下面这段程序能否获得鼠标的动态坐标值,使得绘制的抛物线随着鼠标的移动而动态变化?那位大侠能否帮助编一个获得活动鼠标的动态坐标值的程序?
'提取当前鼠标的动态坐标
p2 = ThisDrawing.Utility.GetPoint(, "p2")
O = p2(0)
P = p2(1)
Q = p2(2)
回复

使用道具 举报

28

主题

117

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
229
发表于 2004-2-25 16:42:00 | 显示全部楼层
跟“橡皮条”一样吗?以前有人讨论过,但不知道有没有结果,好像很复杂的……
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 13:56 , Processed in 0.347096 second(s), 64 queries .

© 2020-2025 乐筑天下

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