UE4 取色器实现

效果:


 

实现逻辑就是计算角度,在图片的中间有一个中点,并与红色、蓝色、绿色对应红圈的三个位置进行点与点的运算,得到三个指向颜色的向量,并在鼠标点击在取色图的上面的位置对中心点进行运算获取点击的向量,再与这三个向量分别运算其角度,角度在对应颜色向量上60度之内,该对应值都为1,其余做MapClamp映射,在60°至120°之间映射到1和0,再用这个值来对圆心到鼠标点击位置的长度做映射值的OutRangeB,在大于等于120°的时候,就直接对长度做映射,映射值为1到0。当然这里还要做取色范围控制,在取色器中心存在一个中心点,在与鼠标位置获取对应向量,最后向量值控制在取色图圆圈半径范围之内,即可限制范围。


核心运算蓝图:


如何获取屏幕颜色?这里带一些Windows窗口编程知识

FColor ABlurCharacter::GetMousePixel()
{
	Windows::HDC hdc = ::GetDC(NULL);
	POINT p1;
	GetCursorPos(&p1);
	COLORREF Color = ::GetPixel(hdc, p1.x, p1.y);
	int R = GetRValue(Color);
	int G = GetGValue(Color);
	int B = GetBValue(Color);
	::ReleaseDC(NULL, hdc);

	FColor realColor = FColor(R, G, B);

	return realColor;
}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值