实际应用中,往往需要三点确定一个圆。例如,在机器人视觉标定中,为了能不用手工创建工具坐标,就可以通过三点定圆的方式算出工具坐标的中心在哪里。我们知道,如果三点不共线的情况下是可以产生一个圆的,有关的公式推导见下面的贴子。三点确定一个圆的算法(C#代码)这里勇哥提供公式的实现代码:private Tuple<PointF, double> drawCircle3P(PointF pt1, PointF pt2, Po
(三) 优先使用聚合,而不是继承有一段时间,养猪场的老板雇用了清洁工人来打扫猪舍。但有一天,老板忽然对自己说"不对啊,既然我有机器人,为什么还要雇人来做这件事情?应该让机器人来打扫宿舍!"于是,这个需求被提交到了机器人的研发小组。看到这个需求,我们敏感地意识到,这是一个潜藏了更多变化的需求,未来机器人的功能还可能会不断增加,于是,我们提取出了一个抽象的机器人接口,并实现了两个具体的机器人类一-喂猪机器人和清洁机器人。系统的结构如图V8-1所示。 图V8-1 这样一
勇哥先来谈谈点绕原点旋转如下图, 在2维坐标上,有一点p(x, y) , 直线opの长度为r, 直线op和x轴的正向的夹角为a。 直线op围绕原点做逆时针方向b度的旋转,到达p’ (s,t) s = r cos(a + b) = r cos(a)cos(b) – r sin(a)sin(b) (1.1)t = r sin(a + b) = r sin(a)cos(b) + r cos(a) sin(b) (1.2)其中 x = r cos(a)&nb
话题见下文:经典算法——绘制空心圆勇哥这里写下其实践的内容。首先,画圆公式为: 原点为圆心,半径为r(r>0)的圆的标准方程为x2+y2=r2下面的代码中ox,oy是原点的位置, radius是圆的r。g是画布句柄。private void drawCircle2(Graphics g, int radius, int ox, int oy)
 
这是勇哥很久以前在博客园里面发的文章。它是读设计模式的书时做的实践,我个人是比较喜欢的,这里转载过来给学习设计模式的朋友把玩一下。对于设计模式, 从本质上说, 其最大的用途就是适应需求的变化. 因为有了设计模式,我们可以在设计阶段就为未来可能发生的变化留下足够的空间.我们通过一个建造现代化养猪场的故事, 来讨论一下设计模式与需要变化之间的关系.(一)设计模式最根本的意图是适应需求的变化一个机器人研发小组研制了一种能自动喂猪的机器人, 于是有人投资兴建了一座由机器人管理的养猪场. 这个养猪场要饲养
1. 三点绘制圆 已知三点为(x1,y1)、(x2,y2),(x3,y3),求三点形成的圆的坐标,可以设求得的圆的原点为(X,Y),半径为R,这样可以得到方程组: (x1-X)²-(y1-Y)²=R² (1)式 (x2-X)²-(y2-Y)²=R² (2)式 (x3-X)²-(y3-Y)²=R² (3)式
命名空间:netMarketing.Net.SocketServerAndClient.TcpServernetMarketing.Net.SocketServerAndClient.SocketClientnetMarketing.Net.SocketServerAndClient.RunLog功能:Sokect服务端与客户端版本要求:netMarketing v1.3.1功能详细说明:最近公司一批机器,PLC是三菱Fx5u,自带网络通讯模块,因此想到由上位机端做Server,plc做为客户端
勇哥的一个案子里面用到这个功能。因为考虑到数据库的表字段没有定形,经常需要修改。如果使用手工拖放TextBox的方案与字段对应的话,程序经常需要改变。因此最好是由数据库表的字段,动态生成TextBox进行显示与编辑,就像下图程序界面这样。首先,我们列出表结构,获取全部字段。然后new出textbox控件,add进控件flowLayoutPanel,这个控件是其它控件的容器,内容过多时自带滚动条。怎么获取sql server中表的结构呢,请看勇哥另一个贴子:Sql Server 2008R2查看表
勇哥手里这份代码启动后报下面的错误。“创建窗口句柄之前,不能在控件上调用Invoke或BeginInvoke”经检查,是在初始化设备时由OnNotifyError报出来。这个OnNotifyError是主窗体上的一个委托。原来是这样的。 public void OnNotifyOK(string msg)
{
命名空间:netMarketing.database功能:EntityHelper类和SQLServerClient类,数据库表实体类操作的类版本要求:netMarketing1.3.1功能详细说明:这个类用于SQL Server数据表的操作。它通过表对应的实体类来操作表。勇哥谈谈实体类操作表的方式是怎么样的?有什么好处?下图中是数据库中的表。下图是实体类生成工具,生成的类“柔性撕膜机”,它是一个实体类。使用下面的代码,则返回结果res中是一个List<柔性撕膜机>的查询结果。&nb