UE4线条交点坐标获取方法

41 篇文章 3 订阅

以前做过一个UE4绘制户型图的项目,当我们画两条有宽度的矩形相交时,会产生接口上的错位,如图:

通过计算A线3,4与B线1,2的交点,重置B线1,A线3的坐标,通过计算A线1,3与B线3,4的交点,重置A线1,B线3的坐标;即可得到计算后的线条样式;

C++计算线条交点的代码:

    // Get A,B,C of first line - points : ps1 to pe1
	float A1 = pe1.Y - ps1.Y;
	float B1 = ps1.X - pe1.X;
	float C1 = A1 * ps1.X + B1 * ps1.Y;

	// Get A,B,C of second line - points : ps2 to pe2
	float A2 = pe2.Y - ps2.Y;
	float B2 = ps2.X - pe2.X;
	float C2 = A2 * ps2.X + B2 * ps2.Y;

	// Get delta and check if the lines are parallel
	float delta = A1 * B2 - A2 * B1;
	if (delta == 0)
	{
		success = false;
	}
	else
	{
		success = true;
	}
	return FVector2D(
		(B2*C1 - B1 * C2) / delta,
		(A1*C2 - A2 * C1) / delta
	);

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值