| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1484 人关注过本帖
标题:萌新想问下, 我的代码,,哪里错了
只看楼主 加入收藏
qq67078954
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-3-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:12 
萌新想问下, 我的代码,,哪里错了
Option Base 1

Private Sub guanghua1()
Dim x1!, y1!, x2%, y2!, a As Variant, j%, b%(42), i%
    a = Array(86, 87,86, 82, 67, 61, 59, 86, 77, 76, 99, 108, 169, _
                       151, 243, 274, 347, 417, 547, 735, 814, 820, 1051, 1091, 1142, _
                       1127, 1012, 940, 810, 705, 593, 431, 346, 239, 192, 130, 95, 53, 32, 14, 11, 7)
    Picture1.Cls
    Picture1.DrawStyle = 0
    x1 = 200: y1 = Picture1.ScaleHeight - 200
    x2 = Picture1.ScaleWidth - 200: y2 = 200
    Picture1.Line (x1, y1)-(x2, y1)         'x
    Picture1.Line (x1, y2)-(x1, y1)         'y
    For j = 1 To 42
        b(j) = 129 + i
    Next j
   For i = 1 To 42
     Picture1.PSet (b(i), a(i)), vbRed
   Next i
   顺便在问一下 ,图片框里给定的坐标系上打出 b(i),a(i) 绘出函数图像啊!。。。。啊啊啊 啊啊想了好久,,,

[此贴子已经被作者于2017-3-17 14:45编辑过]

2017-03-17 12:49
qq67078954
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-3-17
收藏
得分:0 
a a a == =求救啊啊啊
2017-03-17 13:03
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:10 
初步看了一下,发现三个问题。
1、坐标刻度的问题。
你没有说明你的单位是什么,我就当默认是 缇,在正常分辨率下,1像素=15缇。所以你的 Y轴就在一根线上面。

2、坐标系的问题
你没有说明你的坐标系是什么,也没有命令调整坐标系,那么默认情况下,原点位于 左上角 ,数值越大,越向下或向右偏移。

3、代码一个错误。
    For j = 1 To 42
        b(j) = 129 + i
    Next j

这个 i 的值是多少?上下文都没体现,估计你是写错了。

初步就看到这三个问题。




[此贴子已经被作者于2017-3-17 15:17编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2017-03-17 15:09
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:0 
Private Sub guanghua1()
Dim x1!, y1!, x2%, y2!, a As Variant, j%, b%(42), i%
    a = Array(86, 87, 86, 82, 67, 61, 59, 86, 77, 76, 99, 108, 169, _
                       151, 243, 274, 347, 417, 547, 735, 814, 820, 1051, 1091, 1142, _
                       1127, 1012, 940, 810, 705, 593, 431, 346, 239, 192, 130, 95, 53, 32, 14, 11, 7)
    Picture1.Cls
    Picture1.DrawStyle = 0
    x1 = 200: y1 = Picture1.ScaleHeight - 200
    x2 = Picture1.ScaleWidth - 200: y2 = 200
    Picture1.Line (x1, y1)-(x2, y1)         'x
    Picture1.Line (x1, y2)-(x1, y1)         'y
    For j = 1 To 42
        b(j) = j * 5                        '每个点隔 多少像素
    Next j
   For i = 1 To 42
'     Picture1.PSet (b(i) * 15 + 200, y1 - a(i) * 15), vbRed        '画点, 200 ,左边距,y1,Y轴的0点位置 ,15,默认分辨率下的缇与像素换算比例
        Picture1.Circle (b(i) * 15 + 200, y1 - a(i) * 15), 30, vbRed        '画一个圆,代替一个点,可视范围更大一点
        If i > 1 Then       '用线连接前面的点
            Picture1.Line (b(i - 1) * 15 + 200, y1 - a(i - 1) * 15)-(b(i) * 15 + 200, y1 - a(i) * 15), vbRed
        End If
   Next i
End Sub

授人于鱼,不如授人于渔
早已停用QQ了
2017-03-17 15:17
qq67078954
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-3-17
收藏
得分:0 
回复 3楼 风吹过b
如何调整坐标系啊? 那个  函数坐标我想画的是是 (130,0)-(171,1200)但是画图的时候发现不行要根据图像的位置来弄,第一次弄这个啊,不太懂,
那个129+i是写错了真实的想写的是加j, 画图的是我不懂怎么让点 呈现在坐标轴上啊,
那个b(j)是为了让他表示X轴, a(i)表示Y

[此贴子已经被作者于2017-3-17 20:36编辑过]

2017-03-17 20:04
qq67078954
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-3-17
收藏
得分:0 
回复 4楼 风吹过b
我靠大神我要认真研究一下 毕竟还有好几个要写
大神我有一个问题
                 x1 = 200: y1 = Picture1.ScaleHeight - 200
                 x2 = Picture1.ScaleWidth - 200: y2 = 200
                 Picture1.Line (x1, y2)-(x1, y1)
这个为什么y1 和y2换位置 y轴都不变化啊


我靠,我想连接点与点之间的时候写的都是 简单的想line(b(i),a(i))-(b(i+1),a(i+1))怪不得话的奇怪 而且用着用着就会说我的X Y轴定义错误 无效
默认分辨率下的缇与像素换算比例 是因为?坐标要显示在 屏幕上都要*15吗?
图片附件: 游客没有浏览图片的权限,请 登录注册

啊我想化成这样还需要怎么修改?代码?刚刚复制粘贴的时候发现 就算把图片控件拉到超级长 还是没显示出 他的最高点
我思考一下实在不懂在来 问你吧,, 第一次VB画图。。。遇到很多问题
如果我画图的时候把图片放在VB上在用鼠标的点击记录他的坐标 收集在数组当中
然后 在图片框中画坐标
在窗口中打点
这样会简单点吗
2017-03-17 20:26
qq67078954
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-3-17
收藏
得分:0 
回复 4楼 风吹过b
我靠真的是超级厉害!我刚刚修改了一下
            For j = 1 To 42
                    b(j) = j * 26             '每个点隔 多少像素
            Next j
            For i = 1 To 42
            'Picture1.PSet (b(i) * 15 + 200, y1 - a(i) * 8), vbRed        '画点, 200 ,左边距,y1,Y轴的0点位置 ,15,默认分辨率下的缇与像素换算比例
               Picture1.Circle (b(i) * 15 + 200, y1 - a(i) * 8), 30, vbRed        '画一个圆,代替一个点,可视范围更大一点
                    If i > 1 Then       '用线连接前面的点
                    Picture1.Line (b(i - 1) * 15 + 200, y1 - a(i - 1) * 8)-(b(i) * 15 + 200, y1 - a(i) * 8), vbRed
                    End If
            Next i
发现可以接近于我所放的图片!!! 我今天课有点多,,上的背疼,简单的看了下!明天我要仔细看大神你给的代码关于X,Y到底是怎么画上去的!好厉害的说感觉
2017-03-17 20:35
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:0 
Y轴的值,你可以按 百分比计算不?

授人于鱼,不如授人于渔
早已停用QQ了
2017-03-17 22:03
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:10 
程序代码:
  For j = 1 To 42
        b(j) = 129 + i
    Next j
   For i = 1 To 42
     Picture1.PSet (b(i), a(i)), vbRed
   Next i
'修改为:
  For j = 0 To 41
        b(j) = 129 + j
    Next j
   For i = 0 To 41
     Picture1.PSet (b(i), a(i)), vbRed
   Next i

a = Array(86, 87, 82, 67, 61, 59, 86, 77, 76, 99, 108, 169, _
                       151, 243, 274, 347, 417, 547, 735, 814, 820, 1051, 1091, 1142, _
                       1127, 1012, 940, 810, 705, 593, 431, 346, 239, 192, 130, 95, 53, 32, 14, 11, 7)
'a数组是(0 To 41)

请不要选我!!!
2017-03-18 19:46
qq67078954
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-3-17
收藏
得分:0 
回复 8楼 风吹过b
刚刚问了一个问题 ,但是后面自己 找到错误了,但是又不懂删除 回复表示 很尴尬

[此贴子已经被作者于2017-3-21 21:15编辑过]

2017-03-21 20:28
快速回复:萌新想问下, 我的代码,,哪里错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017633 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved