当前位置: 首页 > news >正文

设计网站特点农产品十大交易平台

设计网站特点,农产品十大交易平台,汽车之家官网入口,天津外贸公司网站制作Qt中常用绘制圆弧的库函数#xff1a; //函数原型 void QPainter::drawArc(const QRectF rectangle, int startAngle, int spanAngle)Qt规定1约占16个像素#xff0c;比如一个完整的圆等于360度#xff0c;对应的像素角度就是 5760度#xff08;16 * 360#xff09;…Qt中常用绘制圆弧的库函数 //函数原型 void QPainter::drawArc(const QRectF rectangle, int startAngle, int spanAngle)Qt规定1°约占16个像素比如一个完整的圆等于360度对应的像素角度就是 5760度16 * 360。 正值的角度表示逆时针方向而负值的角度表示顺时针方向。因此如果你指定正值的 startAngle 和 spanAngle那么绘制的弧形将是逆时针方向的如果是负值那么绘制的弧形将是顺时针方向的。0度位于时钟的 3 点钟位置。这意味着如果 startAngle 为零弧形的起始点将位于圆的最右侧然后按照逆时针方向绘制。 例如 QRectF rectangle(10.0, 20.0, 80.0, 60.0); int startAngle 30 * 16; int spanAngle 120 * 16;QPainter painter(this); painter.drawArc(rectangle, startAngle, spanAngle);计算drawArc函数所需的startAngle,spanAngle和rectangle 自定义复数类用于计算参数信息的时候使用 //ComplexNum.h class ComplexNum { public:ComplexNum();ComplexNum(double a, double b);public://复数的四则运算ComplexNum operator (const ComplexNum num);ComplexNum operator -(const ComplexNum num);ComplexNum operator *(const ComplexNum num);ComplexNum operator /(const ComplexNum num);//其他函数,设置和取模void setComplexNumValue(double a, double b);double getComplexNumMold();double A();double B();private:double a, b; };//ComplexNum.cpp ComplexNum::ComplexNum() :a(0), b(0) {}ComplexNum::ComplexNum(double a, double b) {this-a a;this-b b; }//复数的四则运算 ComplexNum ComplexNum::operator (const ComplexNum num) {return ComplexNum(this-a num.a, this-b num.b); }ComplexNum ComplexNum::operator -(const ComplexNum num) {return ComplexNum(this-a - num.a, this-b - num.b); }//复数的相乘(abi)(cdi)(ac-bd)(bcad)i两个复数的积仍然是一个复数 ComplexNum ComplexNum::operator *(const ComplexNum num) {return ComplexNum(this-a * num.a - this-b * num.b, this-b * num.a this-a * num.b); }//复数的除法 ComplexNum ComplexNum::operator /(const ComplexNum num) {if (!num.a !num.b) {return ComplexNum(a, b);}else {return ComplexNum((a * num.a b * num.b) / (num.a * num.a num.b * num.b),(b * num.a - a * num.b) / (num.a * num.a num.b * num.b));} }//其他函数,设置和取模 void ComplexNum::setComplexNumValue(double a, double b) {this-a a;this-b b; }double ComplexNum::getComplexNumMold() {return sqrt(a * a b * b); }double ComplexNum::A() {return this-a; } double ComplexNum::B() {return this-b; }//定义圆弧信息结构体计算圆弧信息的函数返回该结构体对象 struct ArcInfo {double startAngle;double spanAngle;QRectF rectangle; };//计算圆弧信息的函数 ArcInfo PixelConversionLibrary::CalculateArc(QPointF start, QPointF end, QPointF center, bool isAcw) {//计算画弧所需的参数有3个起始角度、夹角、外切矩形double startAngle 0, spanAngle 0;QRectF rectangle;//定义起始向量和终止向量QPointF startVector start - center;QPointF endVector end - center;//构建两个复数,一个是起点的复数一个是终点的复数两者相除即得到旋转子的复数//乘以一个模为1的复数时不会导致缩放只会产生旋转这样的复数就称为旋转子rotor//逆时针*旋转子(cos(θ)sin(θ)i) 顺时针*旋转子的共轨复数(cos(θ)-sin(θ)i)//默认逆时针角度为正顺时针为负//若span角为0说明弧是一个整圆spanAngle需修正为360°ComplexNum c1(startVector.x(), startVector.y());ComplexNum c2(endVector.x(), endVector.y());//ComplexNum rotor c2 / c1;ComplexNum rotor c1 / c2;if (isAcw) {spanAngle qAtan2(rotor.B(), rotor.A());if (spanAngle 0) {spanAngle 2 * PI;}}else {spanAngle -qAtan2(-rotor.B(), rotor.A());if (spanAngle 0) {spanAngle - 2 * PI;}}if (fabs(spanAngle) 0.0001)spanAngle 2 * PI;//计算起始角c1.setComplexNumValue(1, 0);c2.setComplexNumValue(startVector.x(), startVector.y());//rotor c2 / c1;rotor c1 / c2;startAngle qAtan2(rotor.B(), rotor.A());//弧度转角度spanAngle spanAngle * (180 / PI);startAngle startAngle * (180 / PI);double r sqrtf(pow(startVector.x(), 2) pow(startVector.y(), 2));QPointF upperLeftPointOfRect QPointF(center.x() - r, center.y() - r);rectangle.setRect(upperLeftPointOfRect.x(), upperLeftPointOfRect.y(), 2 * r, 2 * r);return { startAngle, spanAngle, rectangle }; }//调用 ArcInfo arcInfo CalculateArc(pixelStartPoint, pixelEndPoint, pixelCenter, true); painter.drawArc(arcInfo.rectangle, arcInfo.startAngle * 16, arcInfo.spanAngle * 16);注意CalculateArc函数的参数传递的必须都是像素值这样算出的矩形信息才是像素信息但是算出的角度依然是实际角度需要乘以16转化为像素角度。
http://www.zqtcl.cn/news/474789/

相关文章:

  • 网站上的用户注册怎么做的苏州网站建设制作服务商
  • 网站开发模版宁波网
  • 以鹦鹉做头像的网站wordpress post是什么
  • 公司怎么建立自己网站做网站需要编码吗
  • 网站域名根目录在哪里wordpress做跟随导航导航
  • 昆明网站建站推广it外包工作怎么样
  • 上海长宁网站建设公司WordPress 采集文章 图片
  • 紫色 网站网络设计的最后一个步骤是
  • 广东省建设安全卡查询网站网站开发需要的语言
  • 网站的建设需要考虑什么问题投放广告的网站
  • 雅虎提交网站入口常州哪家做网站好
  • 哪些网站是503错误代码太原搭建网站的公司
  • 网站建设公司需要有什么东西凡科建站seo
  • 荷泽网站建设买链接做网站 利润高吗
  • 网站嵌套代码网络营销与策划实训
  • 网上做环评立项的网站是哪个网站开发是前端吗
  • 公司网站可以自己建立吗前端网站开发教程
  • 淘宝客导购网站营销推广软件有哪些
  • 专做写字楼出租的网站建设银行北京招聘网站
  • 龙华观澜网站建设酒店网站建设策划
  • 淄博网站排名做版权保护的网站
  • 专业轻电商网站建设公司新闻发布的网站
  • 设计型网站营销存在的问题及改进
  • 南通建设企业网站wordpress 位置地图
  • 无锡本地网站有哪些手机拍摄720全景软件
  • 泉州晋江网站建设费用东莞市住房和城乡建设局门户网站
  • 苏州网站建设哪家便宜平谷手机网站设计
  • 建设项目一次公示网站嘉兴新站seo外包
  • 电子商务网站模板 html专业网站建设服务报价
  • 网页设计和网站建设的区别研发一款app要多少钱