中华农历论坛知识讨论区历法知识 → [原创]用汉编绘五角星(附英文程序比较)


  共有25520人关注过本帖树形打印

主题:[原创]用汉编绘五角星(附英文程序比较)

帅哥哟,离线,有人找我吗?
秦汉昌
  11楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2009/12/26 16:30:00

多角星代码继续简化如下:

 

255 9 52 RGB 新颜色 粉红色
155 6 36 RGB 新颜色 深红色

扩展对象 五角星绘制窗口  继承自 窗口对象模板


按钮控制 显示按钮
数调谐控制 N角按钮
编辑框控制 N编辑框

数调谐控制 角度按钮
编辑框控制 角编辑框

\ 窗口内过程、事件、变量、实例对象、缓冲等
 
属性 窗口标题:
     编字串" 五角星绘制"
     属性。
属性 开始尺寸:
     500 500
     属性。
属性 开始位置:
     自动居中: 自本身
     属性。


0  给  横坐标
0  给  纵坐标


编 点X变换
  横坐标     +     。

编 点Y变换
  纵坐标 ↑↓ -    。  

 


  210  给  绘图区

编 覆盖绘图区
   浅灰色  画线颜色: 设备描述表
    浅灰色  画刷颜色: 设备描述表
    0  点X变换  0  点Y变换
    绘图区  填充圆: 设备描述表
   。

对象事件 初始时:
                本身的 启动: 角编辑框
                本身的 启动: 角度按钮
                     读句柄: 角编辑框
                  置绑定对象: 角度按钮

         280 11 40 23 定位: 角编辑框
         259 11 20 23 定位: 角度按钮

           0 360 置可调范围: 角度按钮
               0   置当前值: 角度按钮

                本身的 启动: N编辑框
                本身的 启动: N角按钮
                     读句柄: N编辑框
                  置绑定对象: N角按钮

         360 11 40 23 定位: N编辑框
         339 11 20 23 定位: N角按钮

           3 360 置可调范围: N角按钮
               5   置当前值: N角按钮

                本身的 启动: 显示按钮
         435 11 60 23 定位: 显示按钮
字串" 显  示"   置控制对象标题: 显示按钮

         对象事件。

编 转弧度 π 180.0 / * 。

编 转角度 180.0 π / * 。

 

编 回始点  ( N --- )
   { N \ -- }
 ♂ N  = 就 ♀ 0 然后
 。


编 星常量   (  R  N  --- )
   { \ R0 N0 -- } 数>实  写入  N0 数>实  写入  R0
    N0 3.0 >
   就    R0  360.00 N0 4.00 * /  转弧度  FCOS  *
             360.00 N0 2.00 * /  转弧度  FTAN  *
         R0  360.00 N0 4.00 * /  转弧度  FSIN  *  -
   否则   R0 3.0 /
   然后
   。

编 求实数
   ♂ 属性值 0= 就 数>实  然后  。

编 求点坐标    ( R 度数   --- )
        求实数 ↑↓ 求实数 ↑↓ 转弧度
         ♂  FCOS  2 §   *  实>数 点X变换
         ∵  FSIN        *  实>数 点Y变换    。


编 角星   ( X Y R 偏移度 颜色一 颜色二  N  --- )
         { X Y R 偏移度 颜色一 颜色二 N \ 五星色 -- }  0  写入  五星色
         X        写入 横坐标 Y        写入  纵坐标
  N 0
  ?循环  开始画笔路径[: 设备描述表
         0                          点X变换       0                               点Y变换  坐标定位: 设备描述表
         R          内环数 数>实  360. N  数>实 /      *                偏移度 求实数  +  求点坐标 画线到: 设备描述表
         R N 星常量  内环数 数>实  360. N  数>实 / ♂ ∵ * ↑↓ 2.  /  +  偏移度  求实数  +  求点坐标 画线到: 设备描述表
         0                         点X变换       0                                    点Y变换 画线到: 设备描述表
         ]结束画笔路径:  设备描述表
         2 画笔宽度:  颜色一
          颜色一   画线颜色: 设备描述表
          颜色一   画刷颜色: 设备描述表 
         勾画轮廓并填充: 设备描述表
         开始画笔路径[: 设备描述表
         0                          点X变换       0                                   点Y变换  坐标定位: 设备描述表
         R  内环数 1+ N 回始点  数>实  360. N  数>实 /      *                偏移度 求实数 + 求点坐标 画线到: 设备描述表
         R N 星常量  内环数     数>实  360. N  数>实 / ♂ ∵ * ↑↓ 2.  /  +  偏移度 求实数 +  求点坐标 画线到: 设备描述表
         0                         点X变换       0                                        点Y变换 画线到: 设备描述表
        ]结束画笔路径:  设备描述表
         2 画笔宽度: 颜色二
         颜色二   画线颜色: 设备描述表
         颜色二   画刷颜色: 设备描述表 
         勾画轮廓并填充: 设备描述表
   回环
    。


编 N角星
   覆盖绘图区
   250 250 200
   读当前值: 角度按钮
   粉红色 深红色
   读当前值: N角按钮 角星
   。


对象事件 绘制时:
        绘制时: 自源模板
    0 0 读大小: 自本身  浅灰色 区域填充: 设备描述表
       0 置背景混合方式: 设备描述表
        230 14 字串" 偏移"  文本输出: 设备描述表
        322 14 字串" 度"  文本输出: 设备描述表
        403 14 字串" 角星"  文本输出: 设备描述表
         对象事件。

 


对象事件 定义路径:
        对象事件。

对象事件 关闭:
         关闭: 自源模板
         退出
         对象事件。
WM_CLOSE 触发时:
         关闭: 自源模板
         退出
         触发。

模板事件 接受命令:
       接受命令: 自源模板
       ∽  取低字
           如和 读标识: 显示按钮 对应就  N角星
           而后 0
           模板事件。 
对象。
无名编  启动:     五角星绘制窗口
        。
执行无名词

 

 


此主题相关图片如下:多角星显示窗口.jpg
按此在新窗口浏览图片


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  12楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2009/12/26 16:41:00


图片点击可在新窗口打开查看此主题相关图片如下:100角星.jpg
图片点击可在新窗口打开查看

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  13楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2009/12/26 18:01:00


255 9 52 RGB 新颜色 粉红色
155 6 36 RGB 新颜色 深红色

扩展对象 五角星绘制窗口  继承自 窗口对象模板


按钮控制 显示按钮
数调谐控制 N角按钮
编辑框控制 N编辑框

数调谐控制 角度按钮
编辑框控制 角编辑框

\ 窗口内过程、事件、变量、实例对象、缓冲等
 
属性 窗口标题:
     编字串" 五角星绘制"
     属性。
属性 开始尺寸:
     500 500
     属性。
属性 开始位置:
     自动居中: 自本身
     属性。


0  给  横坐标
0  给  纵坐标


编 点X变换
  横坐标     +     。

编 点Y变换
  纵坐标 ↑↓ -    。  

 


  210  给  绘图区

编 覆盖绘图区
   浅灰色  画线颜色: 设备描述表
    浅灰色  画刷颜色: 设备描述表
    0  点X变换  0  点Y变换
    绘图区  填充圆: 设备描述表
   。

对象事件 初始时:
                本身的 启动: 角编辑框
                本身的 启动: 角度按钮
                     读句柄: 角编辑框
                  置绑定对象: 角度按钮

         280 11 40 23 定位: 角编辑框
         259 11 20 23 定位: 角度按钮

           0 360 置可调范围: 角度按钮
               0   置当前值: 角度按钮

                本身的 启动: N编辑框
                本身的 启动: N角按钮
                     读句柄: N编辑框
                  置绑定对象: N角按钮

         360 11 40 23 定位: N编辑框
         339 11 20 23 定位: N角按钮

           3 360 置可调范围: N角按钮
               5   置当前值: N角按钮

                本身的 启动: 显示按钮
         435 11 60 23 定位: 显示按钮
字串" 显  示"   置控制对象标题: 显示按钮

         对象事件。

编 转弧度 π 180.0 / * 。

编 转角度 180.0 π / * 。

 

编 回始点  ( N --- )
   { N \ -- }
 ♂ N  = 就 ♀ 0 然后
 。


编 星常量   (  R  N  --- )
   { \ R0 N0 -- } 数>实  写入  N0 数>实  写入  R0
    N0 3.0 >
   就    R0  360.00 N0 4.00 * /  转弧度  FCOS  *
             360.00 N0 2.00 * /  转弧度  FTAN  *
         R0  360.00 N0 4.00 * /  转弧度  FSIN  *  -
   否则   R0 3.0 /
   然后
   。

编 求实数
   ♂ 属性值 0= 就 数>实  然后  。

编 求点坐标    ( R 度数   --- )
        求实数 ↑↓ 求实数 ↑↓ 转弧度
         ♂  FCOS  2 §   *  实>数 点X变换
         ∵  FSIN        *  实>数 点Y变换    。

0.0  给  R0
0.0  给  角1
0.0  给  角2
0.0  给  角3

编 角星   ( X Y R 偏移度 颜色一 颜色二  N  --- )
         { X Y R 偏移度 颜色一 颜色二 N \ 五星色 -- }  0  写入  五星色
         X        写入 横坐标 Y        写入  纵坐标
         R N 星常量  写入  R0
  N 0
  ?循环  内环数             数>实  360. N  数>实 /      *    偏移度 求实数  +  写入 角1
        内环数 1+ N 回始点  数>实  360. N  数>实 /      *    偏移度 求实数  +  写入 角2
        内环数 数>实  360. N  数>实 / ♂ ∵ * ↑↓ 2.  /  +  偏移度  求实数  +  写入 角3

         开始画笔路径[: 设备描述表
         X    Y         坐标定位: 设备描述表
         R   角1  求点坐标 画线到: 设备描述表
         R0  角3  求点坐标 画线到: 设备描述表
         X    Y          画线到: 设备描述表
         ]结束画笔路径:  设备描述表
         2 画笔宽度:  颜色一
          颜色一   画线颜色: 设备描述表
          颜色一   画刷颜色: 设备描述表 
         勾画轮廓并填充: 设备描述表
         开始画笔路径[: 设备描述表
                  X    Y         坐标定位: 设备描述表
         R   角2  求点坐标 画线到: 设备描述表
         R0  角3  求点坐标 画线到: 设备描述表
         X    Y          画线到: 设备描述表
 
        ]结束画笔路径:  设备描述表
         2 画笔宽度: 颜色二
         颜色二   画线颜色: 设备描述表
         颜色二   画刷颜色: 设备描述表 
         勾画轮廓并填充: 设备描述表
   回环
    。


编 N角星
   覆盖绘图区
   250 250 200
   读当前值: 角度按钮
   粉红色 深红色
   读当前值: N角按钮 角星
   。


对象事件 绘制时:
        绘制时: 自源模板
    0 0 读大小: 自本身  浅灰色 区域填充: 设备描述表
       0 置背景混合方式: 设备描述表
        230 14 字串" 偏移"  文本输出: 设备描述表
        322 14 字串" 度"  文本输出: 设备描述表
        403 14 字串" 角星"  文本输出: 设备描述表
         对象事件。

 


对象事件 定义路径:
        对象事件。

对象事件 关闭:
         关闭: 自源模板
         退出
         对象事件。
WM_CLOSE 触发时:
         关闭: 自源模板
         退出
         触发。

模板事件 接受命令:
       接受命令: 自源模板
       ∽  取低字
           如和 读标识: 显示按钮 对应就  N角星
           而后 0
           模板事件。 
对象。
无名编  启动:     五角星绘制窗口
        。
执行无名词


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  14楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2009/12/26 19:13:00

简化并提高代码的执行效率:

 


255 9 52 RGB 新颜色 粉红色
155 6 36 RGB 新颜色 深红色

扩展对象 五角星绘制窗口  继承自 窗口对象模板


按钮控制 显示按钮
数调谐控制 N角按钮
编辑框控制 N编辑框

数调谐控制 角度按钮
编辑框控制 角编辑框

\ 窗口内过程、事件、变量、实例对象、缓冲等
 
属性 窗口标题:
     编字串" 五角星绘制"
     属性。
属性 开始尺寸:
     500 500
     属性。
属性 开始位置:
     自动居中: 自本身
     属性。


0  给  横坐标
0  给  纵坐标


编 点X变换
  横坐标     +     。

编 点Y变换
  纵坐标 ↑↓ -    。  

 


  210  给  绘图区

编 覆盖绘图区
   浅灰色  画线颜色: 设备描述表
    浅灰色  画刷颜色: 设备描述表
    0  点X变换  0  点Y变换
    绘图区  填充圆: 设备描述表
   。

对象事件 初始时:
                本身的 启动: 角编辑框
                本身的 启动: 角度按钮
                     读句柄: 角编辑框
                  置绑定对象: 角度按钮

         280 11 40 23 定位: 角编辑框
         259 11 20 23 定位: 角度按钮

           0 360 置可调范围: 角度按钮
               0   置当前值: 角度按钮

                本身的 启动: N编辑框
                本身的 启动: N角按钮
                     读句柄: N编辑框
                  置绑定对象: N角按钮

         360 11 40 23 定位: N编辑框
         339 11 20 23 定位: N角按钮

           3 360 置可调范围: N角按钮
               5   置当前值: N角按钮

                本身的 启动: 显示按钮
         435 11 60 23 定位: 显示按钮
字串" 显  示"   置控制对象标题: 显示按钮

         对象事件。

编 转弧度 π 180.0 / * 。

编 转角度 180.0 π / * 。

 

编 回始点  ( N --- )
   { N \ -- }
 ♂ N  = 就 ♀ 0 然后
 。


编 星常量   (  R  N  --- )
   { \ R0 N0 -- } 数>实  写入  N0 数>实  写入  R0
    N0 3.0 >
   就    R0  360.00 N0 4.00 * /  转弧度  FCOS  *
             360.00 N0 2.00 * /  转弧度  FTAN  *
         R0  360.00 N0 4.00 * /  转弧度  FSIN  *  -
   否则   R0 3.0 /
   然后
   。

编 求实数
   ♂ 属性值 0= 就 数>实  然后  。

编 求点坐标    ( R 度数   --- )
        求实数 ↑↓ 求实数 ↑↓ 转弧度
         ♂  FCOS  2 §   *  实>数 点X变换
         ∵  FSIN        *  实>数 点Y变换    。


编 勾画轮廓并填充
         开始画笔路径[: 设备描述表
坐标定位: 设备描述表
画线到: 设备描述表
画线到: 设备描述表 
画线到: 设备描述表
         ]结束画笔路径:  设备描述表
         勾画轮廓并填充: 设备描述表


编 角星   ( X Y R 偏移度 颜色一 颜色二  N  --- )
         { X Y R 偏移度 颜色一 颜色二 N \ R0 -- }  
         X        写入 横坐标 Y        写入  纵坐标
         R N 星常量  写入  R0
         2 画笔宽度:  颜色一
  N 0
  ?循环  R  内环数             数>实  360. N  数>实 /      *    偏移度 求实数  +  求点坐标
        R  内环数 1+ N 回始点  数>实  360. N  数>实 /      *    偏移度 求实数  +  求点坐标
        R0 内环数 数>实  360. N  数>实 / ♂ ∵ * ↑↓ 2.  /  +  偏移度  求实数  +  求点坐标
        

          颜色一   画线颜色: 设备描述表
          颜色一   画刷颜色: 设备描述表
         X    Y         
         双∽   
         9 √ 9 √
         X    Y
         勾画轮廓并填充
         颜色二   画线颜色: 设备描述表
         颜色二   画刷颜色: 设备描述表
         X    Y    
         双↑↓   
         双∴ 
         X    Y         
         勾画轮廓并填充
   回环
    。


编 N角星
   覆盖绘图区
   250 250 200
   读当前值: 角度按钮
   粉红色 深红色
   读当前值: N角按钮 角星
   。


对象事件 绘制时:
        绘制时: 自源模板
    0 0 读大小: 自本身  浅灰色 区域填充: 设备描述表
       0 置背景混合方式: 设备描述表
        230 14 字串" 偏移"  文本输出: 设备描述表
        322 14 字串" 度"  文本输出: 设备描述表
        403 14 字串" 角星"  文本输出: 设备描述表
         对象事件。

 


对象事件 定义路径:
        对象事件。

对象事件 关闭:
         关闭: 自源模板
         退出
         对象事件。
WM_CLOSE 触发时:
         关闭: 自源模板
         退出
         触发。

模板事件 接受命令:
       接受命令: 自源模板
       ∽  取低字
           如和 读标识: 显示按钮 对应就  N角星
           而后 0
           模板事件。 
对象。
无名编  启动:     五角星绘制窗口
        。
执行无名词


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  15楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2009/12/26 20:27:00

在C++Builder或VC中,不一定要我们动手写,在集成环境中新建项目时,根据项目的类型,会自动创建的,包括窗体代码等。特别是针对activeX编程,接口代码更可怕,少则几百行,多则几千行,而这些,在集成环境中是自动创建的,不知汉编是如何解决这些问题的。

汉编代码,目前来说,都必须自己写

 

但是,汉编的窗口编程不存在如上问题

 

汉编除了调用 部分aPI函数外,汉语编程词汇都装在词典里

 

而那些系统词,不需要去了解它的内部结构

 

汉编的对象编程,源代码精简

 

而封装后,也却成了一个完整的系统

 

被封装的exe程序内在设置字串解释来执行,用输入的代码

 

也就是说,在一个新的可执行文件 中

 

用户可以脱离编译系统执行新代码

 

 


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
linkerson
  16楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:89 积分:1001 威望:0 精华:0 注册:2009/2/22 21:16:00
  发帖心情 Post By:2010/2/4 15:00:00

.子程序 _按钮1_被单击
.局部变量 n, 整数型
.局部变量 中心x, 整数型
.局部变量 中心y, 整数型
.局部变量 次数, 整数型
.局部变量 中心角, 双精度小数型
'局部变量 半中心角, 双精度小数型
.局部变量 内径, 双精度小数型

n = 到数值 (编辑框1.内容)

中心x = 画板1.宽度 ÷ 2
中心y = 画板1.高度 ÷ 2
半中心角 = #pi ÷ n
中心角 = 2 × 半中心角
内径 = 求余弦 (中心角) ÷ 求余弦 (半中心角) × 135
画板1.清除 (, , , )
.计次循环首 (n, 次数)
    画板1.画直线 (中心x, 中心y, 中心x + 求余弦 (中心角 × (次数 - 1)) × 135, 中心y + 求正弦 (中心角 × (次数 - 1)) × 135)
    画板1.画直线 (中心x, 中心y, 中心x + 求余弦 (半中心角 + 中心角 × (次数 - 1)) × 内径, 中心y + 求正弦 (半中心角 + 中心角 × (次数 - 1)) × 内径)
    画板1.画直线 (中心x + 求余弦 (中心角 × (次数 - 1)) × 135, 中心y + 求正弦 (中心角 × (次数 - 1)) × 135, 中心x + 求余弦 (半中心角 + 中心角 × (次数 - 1)) × 内径, 中心y + 求正弦 (半中心角 + 中心角 × (次数 - 1)) × 内径)
    画板1.画直线 (中心x + 求余弦 (半中心角 + 中心角 × (次数 - 1)) × 内径, 中心y + 求正弦 (半中心角 + 中心角 × (次数 - 1)) × 内径, 中心x + 求余弦 (中心角 × 次数) × 135, 中心y + 求正弦 (中心角 × 次数) × 135)
.计次循环尾 ()


图片点击可在新窗口打开查看此主题相关图片如下:5.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:9.jpg
图片点击可在新窗口打开查看

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 16 上一页 1 2

返回版面帖子列表

[原创]用汉编绘五角星(附英文程序比较)








签名