绘制多边形并进行拉伸

1,平面坐标点串

        var polygon = viewer.entities.add({
            polygon: {
                hierarchy: {
                    positions: [new Cesium.Cartesian3(6378136.282064899, 2045.931221366772, -1942.1627961569236),
                        new Cesium.Cartesian3(6378136.401006819, 2059.9615452982202, -2009.4381889716935),
                        new Cesium.Cartesian3(6378136.323519128, 2120.403271677589, -2010.7963412229758),
                        new Cesium.Cartesian3(6378136.231778225, 2123.366119812282, -1930.1244599529364)
                    ]
                },
                perPositionHeight: true,//对每个位置使用options.positions的height,而不使用options.height来确定高度
                extrudedHeight: 100,
                material: Cesium.Color.BLUE.withAlpha(0.5),
                outline: true,
                outlineColor: Cesium.Color.BLACK.withAlpha(1)//黑色轮廓线
            }
        });
        viewer.zoomTo(polygon);

2,经纬度坐标点串

                            var pointArray = new Array();
                            for (var j = 0; j < data.geometry.points.length; j++) {
                                var x = data.geometry.points[j].x;
                                var y = data.geometry.points[j].y;
                                pointArray.push(x);
                                pointArray.push(y);
                                pointArray.push(JMGC + GD);
                            }

                            viewer.entities.add({
                                name:"房间号:" + FJH,
                                fjhInfo:FJH,
                                colorInfo:colorStr,
                                id: FW_HS_INDEX,
                                text:BDCDYH,
                                polygon: {
                                    hierarchy: Cesium.Cartesian3.fromDegreesArrayHeights(pointArray),
                                    extrudedHeight: JMGC,//多边形的挤出面和椭圆面之间的距离(以米为单位)。
                                    perPositionHeight: true,//对每个位置使用options.positions的height,而不使用options.height来确定高度
                                    // material : Cesium.Color.RED.withAlpha(0.5),//颜色及透明度设置
                                    material: Cesium.Color.fromAlpha(Cesium.Color.fromCssColorString(colorStr), .5),
                                    outline: true,
                                    outlineColor: Cesium.Color.BLACK.withAlpha(1)//黑色轮廓线
                                }
                            });

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QPainter是Qt框架中的一个绘图工具类,可以用于在窗口、视图或其他绘图设备上进行2D绘图操作。使用QPainter可以绘制各种形状,包括特殊的多边形,并且可以通过拉伸填充来改变形状的大小。 要绘制特殊多边形,我们可以使用QPolygon类来定义多边形的顶点坐标。首先,我们可以创建一个QPolygon对象,并使用addPoint()方法添加多边形的顶点。例如,创建一个五边形可以使用如下代码: QPolygon polygon; polygon << QPoint(50, 200) << QPoint(150, 100) << QPoint(250, 100) << QPoint(350, 200) << QPoint(200, 300); 然后,我们可以使用QPainter的drawPolygon()方法来绘制这个多边形。例如: QPainter painter(this); painter.setBrush(Qt::red); // 设置填充颜色为红色 painter.drawPolygon(polygon); 如果我们希望对这个特殊多边形进行拉伸填充,我们可以使用QPainter的scale()方法来实现。scale()方法可以按照给定的比例因子在x和y方向上进行拉伸操作。例如,如果我们希望在x方向上拉伸1.5倍,y方向上拉伸2倍,可以使用如下代码: painter.scale(1.5, 2); 然后,再次使用drawPolygon()方法来绘制多边形,就会发现多边形的大小发生了变化。 综上所述,使用QPainter可以绘制特殊多边形进行拉伸填充。我们可以通过QPolygon定义多边形的顶点坐标,然后使用drawPolygon()方法绘制多边形。使用scale()方法可以在绘制多边形之前对其进行拉伸操作,实现填充效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值