怎么画倾斜的矩形

yukongjianjzh 2011-06-30 09:25:56
rectangle画出来的矩形都是水平的,我想画一个倾斜的矩形,也就是四条边不是和水平方向垂直或者平行的,而是有一点倾角的,请问有函数吗
...全文
1482 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyudianxiaoxiao 2011-11-24
  • 打赏
  • 举报
回复
pDC->MoveTo(x1,y1);
pDC->LineTo(x2,y2);
pDC->LineTo(x3,y3);
pDC->LineTo(x4,y4);
pDC->LineTo(x1,y1);
Eleven 2011-07-01
  • 打赏
  • 举报
回复
计算4个点,然后Polyline()连接起来就行了
chainyu 2011-07-01
  • 打赏
  • 举报
回复
CRgn::CreateRectRgnIndirect

BOOL CreateRectRgnIndirect( LPCRECT lpRect );

返回值:如果操作成功则返回非零值;否则返回0。

参数: lpRect 指向一个RECT结构或CRect对象,该结构或对象包含了区域的左上角和右下角的逻辑坐标。
RECT结构具有下面的格式:
typedef struct tagRECT
{
int left;
int top;
int right;
int bottom;
} RECT;

说明:
此成员函数用来创建一个矩形区域,该区域被保存在CRgn对象中。
区域的大小被限制在32767×32767个逻辑单位和64K内存这两个值中较小的那个值的范围内。
当使用完了由CreateRectRgnIndirect函数创建的区域时,应用程序应该将此区域选择出设备环境外,并用CGDIObject::DeleteObject成员函数来删除它。

请参阅:
CRgn::CreateRectRgn, CRgn::CreateRoundRectRgn, ::CreateRectRgnIndirect
向立天 2011-07-01
  • 打赏
  • 举报
回复
不就是CRgn
Mdesigner 2011-07-01
  • 打赏
  • 举报
回复
可以把旋转后的四个点计算出来再绘制
gz_qmc 2011-06-30
  • 打赏
  • 举报
回复 1

void MyRectangle(CDC *pDC,int x1,int y1,int x3,int y3,float th)
{
// th表示倾斜角
// 直线方程:y=kx+b;
float PI=3.1415926;
float k1,k2,k3,k4;
float b1,b2,b3,b4;
int x2,y2,x4,y4;

if((asb(th-PI/2)<0.0015926)||asb(th)<0.0015926)
pDC->rectangle(x1,y1,x3,y3);
else
{
k1=k3=tan(th);
k2=k4=1/k1;
if(x1==0) b1=b2=y1;
else
{
b1=y1/(x1*k1);
b2=y1/(x1*k2);
}
if(x3==0) b3=b4=y3;
else
{
b3=y3/(x3*k3);
b4=y3/(x3*k4);
}
x2=(int)((b2-b3)/k3-k2))
y2=(int)(k2*x2+b2);
x4=(int)((b1-b4)/(k4-k1));
y4=(int)(k4*x4+b4);

pDC->MoveTo(x1,y1);
pDC->LineTo(x2,y2);
pDC->LineTo(x3,y3);
pDC->LineTo(x4,y4);
pDC->LineTo(x1,y1);
}
}
gz_qmc 2011-06-30
  • 打赏
  • 举报
回复
一个矩形四个点 (left,top) (right,top) (right,bottom) (left,bottom)
假设中心点(top,left);隔另外三个点的距r2,r3,r4;

r2=right-left;
r4=bottom-top;
r3=sqrt(r2*r2+r4*r4);

那么另外三个点围绕中心点旋转一个角度n之后得到四个新点
(x1,y1) (x2,y2) (x3,y3) (x4,y4)

根据极坐标方程
x1=left;
y1=top;
x2=left + r2*cos(n);
y2=top + r2*sin(n);
x3=left + r3*cos(n);
y3=top + r3*sin(n);
x4=left + r4*cos(n);
y4=top + r4*sin(n);

四点画线就好了
wltg2001 2011-06-30
  • 打赏
  • 举报
回复
GDI中没有,要不你自己去画,要不用图像类库。
karlson0211 2011-06-30
  • 打赏
  • 举报
回复
画四条线,还有就是就生成图,利用图的旋转,GDI+中好像就是利用图的旋转
qjgdftxmu 2011-06-30
  • 打赏
  • 举报
回复
GDI里是没有这个函数
yukongjianjzh 2011-06-30
  • 打赏
  • 举报
回复
没有函数吗

[Quote=引用 1 楼 haogeai123 的回复:]
画四条直线就可以了
[/Quote]
haogeai123 2011-06-30
  • 打赏
  • 举报
回复
画四条直线就可以了
ArcGIS中国工具3.0,一. 版本新功能介绍 5 1.1 ArcGIS 中国工具 3.0 新功能 5 1.2 ArcGIS 中国工具 2.5 新功能 5 1.3 ArcGIS 中国工具 2.3 新功能 6 1.4 ArcGIS 中国工具 2.2 新功能 6 1.5 ArcGIS 中国工具 2.0 新功能 7 二.接合图表生成 7 2.1 矩形接合表生成 8 2.2 倾斜矩形接合表生成 11 2.3 梯形接合表生成 12 2.3.1 根据范围创建 13 2.3.2 有图层创建 15 2.3.3 屏幕上 16 三.图框工具 18 3.1 矩形图框制作和打印 19 3.1.1 在屏幕上矩形图框 19 3.1.2 根据选择对象创建矩形图框 22 3.1.3 根据行政区,批量矩形图框 24 3.2 梯形标准分幅图框制作和打印 26 3.2.1 根据图幅号生成图框和打印 26 3.2.2 根据屏幕创建标准分幅图框和打印 29 3.2.3 批量创建梯形标准分幅图框和打印 30 3.3 倾斜图框 31 3.4 根据纸张创建图框 34 3.5 图框其他辅助工具 36 3.5.1 行政代码 36 3.5.2 标准分幅边框注记生成 38 3.5.3 图框批量打印 39 3.5.4 布局导出图片 41 3.5.5 取消打印状态 42 3.6 参数设置 42 3.6.1 基本信息设置 42 3.6.2 四角标注 47 3.6.3 图廓信息 48 3.6.4 网格信息 50 3.6.5 结合图表信息 52 3.6.6 比例尺条 53 3.7 固定纸张(限定比例尺打印) 54 3.8 云南省三调图框打印 56 第 1 页 四.制图工具 57 4.1 标注功能 57 4.1.1 二分式标注 57 4.1.2 三分式标注 58 4.2 地类符号生成 60 4.3 跳绘 62 4.3.1 编辑跳绘线 62 4.3.2 根据行政界线和线状地物生成跳绘图层批量处理 63 4.4 批量 mxd 转图片 64 4.5 批量导出 mxd 和图片 65 4.6 面积分割 66 4.7 支持字头朝北沿线注记 69 五.图形的裁剪 70 5.1 影像批量裁剪 70 5.2 矢量批量裁剪 72 5.3 选择对象裁剪 73 5.4 裁剪根据屏幕范围 73 5.5 Mxd 裁剪 74 六.数据处理 75 6.1 坐标定义 76 6.2 批量投影转换 78 6.3 字段排序 79 6.4 字段类型修改 81 6.5 根据标准创建数据库 82 6.6 地图平移和缩放 84 6.7 批量修改左上角为第一个点 85 6.8 修改指定点为第一个点 86 6.9 修改面为指定面积 87 6.10 数据合并 87 6.11 获得指定角度的点 88 6.12 删除面和线上重复节点 89 6.13 根据另外图层增加节点 90 七.数据空间分析 90 7.1 点面赋值 90 7.2 面给面赋值 91 7.3 面重复裁剪 93 7.4 四至填写 93 八.其他工具 94 8.1 编号 94 8.2 多图层唯一值编号 95 8.3 编号前面补丁 95 8.4 椭球面积计算 97 8.5 获得坐标 97 8.5 更新范围 98 第 2 页 8.6 其他工具

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧