在矩形纸上均匀画点的算法 - 用C++ Builder 6实现

该博客介绍了如何使用C++ Builder 6编程在矩形纸上均匀分布地画点。通过算法调整点的数量和位置,使得点在矩形内均匀分布。用户可以设置纸张尺寸和点数,程序会根据设定值动态绘制,并在画布上显示结果。
摘要由CSDN通过智能技术生成
问题描述: 给定宽为X, 高为Y的矩形纸, 要在纸上画M个点, 要求这些点分布均匀.

算法描述: 将这张纸划分成N个区域, N>=M, 在这个N个区域的中心画点, 直到画满M个即可.

要点难点: 注意纸张的尺寸, 即X和Y的比值X/Y, 对于不同的比值, 区域有不同的划分方法.
          还需注意每个点的坐标的求法.
          
程序实现: 以下是程序执行截图及C++代码, 使用C++ Builder 6 IDE编译链接.
          窗体左边较大的黑色方框表示纸张的最大尺寸, 天蓝色区域表示实际的纸张大小.
          红色小圆点表示所画的点, 虚线表示它的邻域.





Unit1.h:
  1. //---------------------------------------------------------------------------
  2. #ifndef Unit1H
  3. #define Unit1H
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <Controls.hpp>
  7. #include <StdCtrls.hpp>
  8. #include <Forms.hpp>
  9. #include <ExtCtrls.hpp>
  10. //---------------------------------------------------------------------------
  11. class TForm1 : public TForm
  12. {
  13. __published:    // IDE-managed Components
  14.     TButton *btnDraw;
  15.     TEdit *txtCount;
  16.     TPaintBox *pbox;
  17.     T
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值