设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 5162|回复: 18
打印 上一主题 下一主题

[其它] [求助]已经完成的图形分析,谁知道怎么用已知道的椭圆公式画椭圆???急!!!

[复制链接]
跳转到指定楼层
1#
发表于 2006-6-7 11:16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近做了一个容差查询,里面涉及了图形分析,下载后直接放在桌面上打开就可以了.当打开的时候会滑出一个对话框,大家看一下截图:

里面遇到了一个很棘手的问题:怎么利用已知的椭圆公式画椭圆呢,谁能提供VBA相关思路甚至代码,讨论一下.


[此贴子已经被作者于2006-6-8 1:38:59编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-6-7 18:46:00 | 只看该作者
哇,很酷!!
3#
发表于 2006-6-7 19:37:00 | 只看该作者
原文件中已有源代码了,把隐藏文件显示出来就可以看到了
4#
 楼主| 发表于 2006-6-7 20:21:00 | 只看该作者
哎呀谁知道怎么画椭圆啊,斑竹帮帮忙

5#
发表于 2006-6-7 22:27:00 | 只看该作者
Circle 方法

Circle 方法用于当 [url=mkMSITStore:C:\Program%20Files\Microsoft%20Office\Office10\2052\Vbaac10.chm::/html/acevtPrint.htm]Print[/url] 事件发生时,在 [url=mkMSITStore:C:\Program%20Files\Microsoft%20Office\Office10\2052\Vbaac10.chm::/html/acobjReport.htm]Report[/url] 对象上画圆、椭圆或圆弧。



expression.Circle(flags, X, Y, radius, color, start, end, aspect)

expression   必需。返回“Applies To”列表中的一个对象的表达式。

flags  必需 Integer 型。

X  必需。[url=mkMSITStore:C:\Program%20Files\Microsoft%20Office\Office10\2052\Vbaac10.chm::/html/acmthCircle.htm#]Single[/url] 型值,表示圆、椭圆或圆弧的中心点的横坐标。所用的度量单位由 object 参数所指定的 Report 对象的 Scale 属性(ScaleModeScaleLeftScaleTopScaleHeightScaleWidth)来确定。

Y  必需。Single 型值,表示圆、椭圆或圆弧的中心点的纵坐标。所用的度量单位由 object 参数所指定的 Report 对象的 Scale 属性(ScaleMode, ScaleLeftScaleTopScaleHeightScaleWidth)来确定。

radius  必需。Single 型值,表示圆、椭圆或圆弧的半径。所用的度量单位由 object 参数所指定的 Report 对象的 Scale 属性(ScaleModeScaleLeftScaleTopScaleHeightScaleWidth)来确定。默认情况下,以为单位度量距离。

color  必需 Long 型。Long 型值,表示圆轮廓的 RGB(红绿蓝)颜色。如果省略该参数,将使用 ForeColor 属性的值。也可以使用 RGB 函数或 QBColor 函数来指定颜色。

start  必需 Single 型。当画圆或椭圆的一部分时,start 参数指定了弧的起点位置(以弧度为单位)。start 参数的默认值是 0 弧度。取值范围从 –2 pi 弧度到 2 pi 弧度。

end  必需 Single 型。当画圆或椭圆的一部分时,
6#
 楼主| 发表于 2006-6-8 01:20:00 | 只看该作者
"Circle 方法用于当 [url=mkMSITStore:C:\Program%20Files\Microsoft%20Office\Office10\2052\Vbaac10.chm::/html/acevtPrint.htm]Print[/url] 事件发生时,在 [url=mkMSITStore:C:\Program%20Files\Microsoft%20Office\Office10\2052\Vbaac10.chm::/html/acobjReport.htm]Report[/url] 对象上画圆、椭圆或圆弧。"

不是我想要的呀.....5555
7#
发表于 2006-6-8 01:28:00 | 只看该作者
你的椭圆不是画得挺好吗?

[此贴子已经被作者于2006-6-7 17:30:51编辑过]

8#
 楼主| 发表于 2006-6-8 01:38:00 | 只看该作者




谢谢斑竹提供帮助

帮助示例:

创建一个新的报表。将“主体”节的 打印 属性设为 [事件过程]。在报表的模块中输入下列代码,然后切换到“打印预览”。
  1. Private Sub [b]打印[/b]_Print(Cancel As Integer, PrintCount As Integer)

  2.     Const conPI = 3.14159265359

  3.     Dim sngHCtr As Single, sngVCtr As Single

  4.     Dim sngRadius As Single

  5.     Dim sngStart As Single, sngEnd As Single



  6.     sngHCtr = Me.ScaleWidth / 2     ' Horizontal center.

  7.     sngVCtr = Me.ScaleHeight / 2     ' Vertical center.

  8.     sngRadius = Me.ScaleHeight / 3     ' Circle radius.

  9.     ' Draw circle.

  10.     Me.[b]Circle([/b]sngHCtr, sngVCtr[b])[/b], sngRadius

  11.     sngStart = -0.00000001             ' Start of pie slice.

  12.     sngEnd = -2 * conPI / 3             ' End of pie slice.

  13.     Me.FillColor = RGB(255,0,0)     ' Color pie slice red.

  14.     Me.FillStyle = 0                     ' Fill pie slice.

  15.     ' Draw pie slice within circle.

  16.     Me.[b]Circle([/b]sngHCtr, sngVCtr[b])[/b], sngRadius, , sngStart, sngEnd

  17. End Sub
复制代码

可我想要的是在窗体中实现椭圆的方法,因为我需要的椭圆的大小是固定的,我在已经完成的分析中是使用椭圆工具直接画上去的.事实上我也想到了一种笨办法来实现,那就是创建一个表,根据椭圆公式得到很多组数据,然后由这些数据(很多很多的点,点越多越精确)组成一个椭圆,但无法实现和查询用的(X,Y)图形相重叠,就是现在已经完成的效果.如果不能用VBA实现也可以,请各位高手提供更准确的方法,谢谢!!!
9#
 楼主| 发表于 2006-6-8 01:41:00 | 只看该作者
以下是引用情比金坚在2006-6-7 17:28:00的发言:


你的椭圆不是画得挺好吗?

我那个是用椭圆工具徒手画上的,跟实际需要的有很大的误差......

[此贴子已经被作者于2006-6-7 17:42:23编辑过]

10#
发表于 2006-6-8 01:54:00 | 只看该作者
用报表画出椭圆,然后导出报表为快照,最后在窗体中使用快照控件显示就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-12 15:52 , Processed in 0.107979 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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