请教图形设计问题 现在想设计一个图形,不知道怎么才好,希望各位高手指点!本人想画一个圆形,不是纯圆形,上下左右是四条短横线,其他地方是环形。里面有随机个正方形,求一个排列算法,不管方形多少个,可以充满外面的类圆形。不知道我说清楚了吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 bdmh 于 2010-11-22 14:35:04 编辑 可以这样设计算法,不过效率可能比较低,假设圆的直径是d,小正方形的个数是n,按你说的这个n是指定的,可以是任何一个数量,小正方形的边长是L,,但如果是正方形的话不能保证边缘的正方形一定和圆相交,下面是伪代码L初始为0while(TRUE)//循环{ L+=1 每次循环边长+1 //用L长的小正方形去填充满边长为d大正方形,那个圆就是这个大正方形的内切圆,假设用了x个小正方形 x=d^2/L^2 //x取整 t=x for(i=0;i<t;i++) //循环x次 { 检测第i个小正方形的4个顶点是不是在直径为d的内切圆内,是-继续,不是-则x-1 } 比较x和n,当x第一次小于n的时候,中断循环}L值即为在n个小正方形填充圆情况下的小正方形边长不知道楼主是不是这个意思,还是我理解错了。 请问Delphi中的record结构体能嵌套么? delphi怎么执行telnet?不是简单的执行telnet,内详 找bug 插件问题 如何用Tree显示整个数据库中的表与字段。 如何使可执行文件打开自己读取内容? 急需delphi7.0注册码,请大家帮忙! FastReport如何自定义纸张尺寸? 组件开发的两个问题,高手解答,菜鸟up,同样散分! 请教关于DCOM和COM+运行环境的问题 引用数组的问题 CxGrid如何禁止右键选定?或者如何捕获右键动作?
L初始为0
while(TRUE)//循环
{
L+=1 每次循环边长+1
//用L长的小正方形去填充满边长为d大正方形,那个圆就是这个大正方形的内切圆,假设用了x个小正方形
x=d^2/L^2 //x取整
t=x
for(i=0;i<t;i++) //循环x次
{
检测第i个小正方形的4个顶点是不是在直径为d的内切圆内,是-继续,不是-则x-1
}
比较x和n,当x第一次小于n的时候,中断循环
}
L值即为在n个小正方形填充圆情况下的小正方形边长不知道楼主是不是这个意思,还是我理解错了。