乐筑天下

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

缩放视口

[复制链接]

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-3-7 11:29:38 | 显示全部楼层
我通常只在必要时使用GOTOs(例如错误捕捉),因为可能会出现意大利面代码。如果它对你有效,那么'很好。我只是提出了一种做事情的替代方式。没有冒犯的意思。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-3-7 12:46:29 | 显示全部楼层
没有人带走戴夫
实际上,我回到我的代码,添加我喜欢的GoTo
不过,我会对它们进行速度测试,看看是否有任何差异。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-3-7 16:31:52 | 显示全部楼层
布莱科'我们有时用镜子照我自己的。It#039;就像有一个'断开#039;或#039;继续'与真实语言一样,VB中也提供statemenet;(忍不住)干杯,格伦。
回复

使用道具 举报

170

主题

1424

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2119
发表于 2007-3-8 01:59:16 | 显示全部楼层
这里的速度没有差别。(我的电脑速度很慢)nogo=24.75456
请自行运行MakeSomeObjects,然后添加mup
  1. Private Sub MakeSomeObjects()
  2.     Dim i As Integer, j As Integer
  3.     Dim X As Integer, Y As Integer
  4.     Dim c As AcadCircle
  5.     Dim R As Double
  6.     Dim Cen(2) As Double
  7.     Dim L As AcadLayer
  8.     Dim Ls As AcadLayers
  9.    
  10.     Set Ls = ThisDrawing.LAYERS
  11.     For i = 1 To 90
  12.         Set L = Ls.Add(i)
  13.         L.Color = i
  14.     Next
  15.       
  16.     R = 0.45
  17.     For j = 0 To 1000
  18.         For i = 0 To 89
  19.             R = R + 0.001
  20.             If Int(i / 10) = i / 10 Then
  21.                 X = 0: Y = Y + 1
  22.             Else
  23.                 X = X + 1
  24.             End If
  25.             Cen(0) = X: Cen(1) = Y
  26.             Set c = ThisDrawing.ModelSpace.AddCircle(Cen, R)
  27.             c.Layer = i + 1
  28.         Next i
  29.     Next j
  30. End Sub
  31. Private Sub Addemup()
  32.     Dim i As Integer
  33.     Dim nogo As Single
  34.     Dim go As Single
  35.     For i = 1 To 10
  36.         go = go + speedGoto
  37.         nogo = nogo + speedNoGoto
  38.     Next
  39.     Debug.Print "nogo=" & nogo
  40.     Debug.Print "go=" & go
  41. End Sub
  42. Private Function speedNoGoto() As Single
  43.     Dim Ent As AcadEntity
  44.     Dim T As Single
  45.     T = Timer
  46.     For Each Ent In ThisDrawing.ModelSpace
  47.         If TypeOf Ent Is AcadCircle Then
  48.             If Ent.Layer = "90" Then
  49.                 If Ent.radius > 90 Then
  50.                     If Ent.radius  "90" Then GoTo skip
  51.         If Ent.radius  90.5 Then GoTo skip
  52.         
  53.         Debug.Print Ent.radius
  54.         Exit For
  55. skip:
  56.     Next Ent
  57.     speedGoto = Timer - T
  58. End Function
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-7 13:52 , Processed in 0.270601 second(s), 59 queries .

© 2020-2025 乐筑天下

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