如何从 CGPoint 开始和结束指定一个矩形?
How to specify a rectangle from the CGPoint Start and End?
我有一个矩形边界 (10, 20, 100, 200),CGPoints 是 StartPoint (0.5, 0.5),EndPoints 是 (1, 1)。从这些点需要如何计算段边界?我需要将此边界应用于 CGGradient 的起点和终点。
例如代码:
GradientColor gradientColor1 = new GradientColor(){StartPoint = new CGPoint(0.5, 0), EndPoint= new CGPoint(0.5, 1)};
GradientStop stop1 = new GradientStop() { Color = UIColor.Red, Offset = 0.1f };
GradientStop stop2 = new GradientStop() { Color = UIColor.Blue, Offset = 0.9f };
你能帮我解决这个问题吗?
这是一个示例,它将在当前 CGContext 中创建从左到右的线性渐变。
using (var context = UIGraphics.GetCurrentContext ()) {
context.SaveState();
var startPoint = new CGPoint(rect.Left, 0);
var endPoint = new CGPoint(rect.Right, 0);
var components = new CGColor[] { UIColor.Red.CGColor, UIColor.Blue.CGColor };
using (var rgb = CGColorSpace.CreateDeviceRGB()) {
var gradient = new CGGradient(rgb, components);
context.DrawLinearGradient(gradient, startPoint, endPoint, CGGradientDrawingOptions.DrawsBeforeStartLocation);
};
context.RestoreState();
}
改变起点和终点,您可以从右到左、up/down、对角线等进行渐变绘制。
我有一个矩形边界 (10, 20, 100, 200),CGPoints 是 StartPoint (0.5, 0.5),EndPoints 是 (1, 1)。从这些点需要如何计算段边界?我需要将此边界应用于 CGGradient 的起点和终点。
例如代码:
GradientColor gradientColor1 = new GradientColor(){StartPoint = new CGPoint(0.5, 0), EndPoint= new CGPoint(0.5, 1)};
GradientStop stop1 = new GradientStop() { Color = UIColor.Red, Offset = 0.1f };
GradientStop stop2 = new GradientStop() { Color = UIColor.Blue, Offset = 0.9f };
你能帮我解决这个问题吗?
这是一个示例,它将在当前 CGContext 中创建从左到右的线性渐变。
using (var context = UIGraphics.GetCurrentContext ()) {
context.SaveState();
var startPoint = new CGPoint(rect.Left, 0);
var endPoint = new CGPoint(rect.Right, 0);
var components = new CGColor[] { UIColor.Red.CGColor, UIColor.Blue.CGColor };
using (var rgb = CGColorSpace.CreateDeviceRGB()) {
var gradient = new CGGradient(rgb, components);
context.DrawLinearGradient(gradient, startPoint, endPoint, CGGradientDrawingOptions.DrawsBeforeStartLocation);
};
context.RestoreState();
}
改变起点和终点,您可以从右到左、up/down、对角线等进行渐变绘制。