高分求凸度弧的算法 已知弧上两点、弧的凸度及弧的走向(顺时针或逆时针)求弧的起始角度、终止角度及圆心位置注意:根据弧的走向 解是唯一的!我现在求出了两个解 不知道哪一个才是正确的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在AutoCAD中对于凸度弧是这样描述的:指令格式:0C,x,y,bulge其中0C代表这是一条凸度弧指令。x、y代表弧的位移量(例:当弧的起点为(a,b)时 终点就为(a+x,b+y));bulge代表弧的凸度。x、y的位移变化范围为-127到+127,用于指出弧的曲度的凸起度(bulge)其变化范围也是从-127到+127如果位移量所指定的线段长度为D,线段中点的垂直高度为H,则凸起度为(2*H/D)*127)。如果弧从当前位置到新的位置是顺时针方向,则符号为负。注:半圆的凸度为127(或-127)。凸度为零的弧表示直线。我想我解释清楚了 希望有人能帮忙 应该不是很难的问题 alphapaopao(炮炮) 能不能帮忙找找代码 分还可以加 反正我很少提问 要这么多分也没用 for (jl=1L; jl<numpathsegs; jl++){ adReadBlob2Double(bcptr,vertpt); p2.x = vertpt[0]; p2.y = vertpt[1]; Local2World(&p2); if(p1!=p2) { // arc, 有 bulgespresent 就是圆弧 if(bulgespresent && !SGeomTool::CoordCoincide(bulge, 0)) { D = Len(p1-p2); d = ABS(bulge)*D/2; radius = (d*d + D*D/4)/d/2; pntMid = (p1+p2)/2; tao = p2-p1; N.x = -tao.y; N.y = tao.x; N = !N; if(bulge<0) N = -N; pntCenter = N*(radius-d) + pntMid; // 圆心 tao = p1-pntCenter; startangle = atan2(tao.y, tao.x); // 起始角 tao = p2-pntCenter; endangle = atan2(tao.y, tao.x); // 终止角 PathAddArc(pPath, &pntCenter, radius, startangle, endangle, bulge>0); // 得到一条圆弧,保存起来 } // line else { PathAddLine(pPath, &p1, &p2); } } p1 = p2; if (bulgespresent) { adReadBlobDouble(bcptr,&bulge); }} ============================================================================提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题http://alphasun.betajin.com/ 遇到问题可以给我发消息,给我发信息时请附带原帖地址DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析 是量的单位化,不改变矢量的方向,把矢量的长度变成单位长度1。N = N / sqrt(N.x*N.x + N.y*N.y); PostMessage发送组合按键 我想让进度条显示当前CPU占用率应该怎么做? 一个奇怪的问题 关于VC++中的消息函数的问题!!!请指教 我用一个菜单COMMAND在一个CMDIFrameWnd中添加了一个CMDChildWnd, 关闭该CMDIChildWnd时出错? 远程打开word文件? 第一次关于串口方面的编程,现在遇到以下问题,如果知道,请告知,定高分相送,不够再加200! 如何自定义消息,不用MFC!! 如何在ATL中調用vb寫的dll 大家能不能帮写一个C4.5决定树算法的!!! 怎么把一个CString变量转化为LPCTSTR变量呢。 怎样设置FormView的背景色?
指令格式:0C,x,y,bulge
其中0C代表这是一条凸度弧指令。
x、y代表弧的位移量(例:当弧的起点为(a,b)时 终点就为(a+x,b+y));
bulge代表弧的凸度。x、y的位移变化范围为-127到+127,用于指出弧的曲度的凸起度(bulge)其变化范围也是从-127到+127
如果位移量所指定的线段长度为D,线段中点的垂直高度为H,则凸起度为(2*H/D)*127)。如果弧从当前位置到新的位置是顺时针方向,则符号为负。注:半圆的凸度为127(或-127)。凸度为零的弧表示直线。我想我解释清楚了 希望有人能帮忙 应该不是很难的问题
{
adReadBlob2Double(bcptr,vertpt);
p2.x = vertpt[0]; p2.y = vertpt[1];
Local2World(&p2); if(p1!=p2)
{
// arc, 有 bulgespresent 就是圆弧
if(bulgespresent && !SGeomTool::CoordCoincide(bulge, 0))
{
D = Len(p1-p2);
d = ABS(bulge)*D/2;
radius = (d*d + D*D/4)/d/2;
pntMid = (p1+p2)/2;
tao = p2-p1;
N.x = -tao.y;
N.y = tao.x;
N = !N;
if(bulge<0)
N = -N;
pntCenter = N*(radius-d) + pntMid; // 圆心
tao = p1-pntCenter;
startangle = atan2(tao.y, tao.x); // 起始角
tao = p2-pntCenter;
endangle = atan2(tao.y, tao.x); // 终止角
PathAddArc(pPath, &pntCenter, radius, startangle, endangle, bulge>0); // 得到一条圆弧,保存起来
}
// line
else
{
PathAddLine(pPath, &p1, &p2);
}
} p1 = p2;
if (bulgespresent)
{
adReadBlobDouble(bcptr,&bulge);
}
}
提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
http://alphasun.betajin.com/ 遇到问题可以给我发消息,给我发信息时请附带原帖地址
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析