MFC之OpenGL 三点动态画圆弧

26 篇文章 47 订阅 ¥29.90 ¥99.00
6 篇文章 1 订阅
本文介绍了如何使用OpenGL在MFC中实现三点动态画圆弧。由于GDI+绘图效率较低,作者转向OpenGL,但OpenGL没有内置的画圆弧函数,所以作者通过计算圆心、半径、起始和扫面角度来手动绘制圆弧,最终解决了这个问题。
摘要由CSDN通过智能技术生成

    之前用到GDI+绘制过圆弧,因为CDC类封装有绘制圆弧的函数所以很方便,只需要计算它所需的参数就行;但是用GDI+绘图效率不高,所以现在又改成了用OpenGL实现,但是OpenGL没封装有画圆弧函数,所以只能自己动手写。

1. 三点可以求出圆心O, 半径R

2. 根据这三个点还可以求出绘制圆弧的起始角度startAngle、扫面角度sweepAngle(跨角),如:

//圆弧扫描角、起始角
//计算弧长 L = ⊙ * r (弧度 * 半径)
//判断中点B与圆心O是否在 AC 夹角内 
//如果在 圆弧角度为 angle = A角 - C角; 如果不在 angle = 360 - (A角 - C角) 取反
void CToolN::AngleOfArc()
{
	//跨角
	O圆心 A起点 B中点 C终点

	GLfloat OA = TheAngleFmTwoPoints(O, A, TRUE);   //求两个点的角度0~360
	GLfloat OB = TheAngleFmTwoPoints(O, B, TRUE);
	GLfloat OC = TheAngleFmTwoPoints(O, C, TRUE);

	GLfloat fMax = max(OA, OC);
	GLfloat fMin = min(OA, OC);
	if (OB > fMin && OB < fMax)
		mSw
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ilson_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值