如何在CDR里面看圆的半径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在CDR里面看圆的半径相关的知识,希望对你有一定的参考价值。

1.标准圆 直接看直径除以2
2.椭圆形 正放 也同上 长边直径除以2 是长边半径 短边直径除以2 是短边半径
3.椭圆形 斜放 用“量度工具”里的 “斜向量度工具 ”测量需要知道的半径。
完毕!
希望对楼主有用!
参考技术A 按着Ctrl键画一个正圆,在属性栏中显示的尺寸除以2就是这个圆的半径。 参考技术B 直径除以2

绘制半径等于手指路径的圆

【中文标题】绘制半径等于手指路径的圆【英文标题】:Drawing circles with radius that is equal to finger path 【发布时间】:2019-10-22 21:46:52 【问题描述】:

我想创建一个应用,用户将一根手指放在屏幕上并在屏幕上绘制一个圆圈。圆圈的中心位于用户触摸屏幕的位置。用户移动他们的手指以增加圆的半径。当用户移动手指时,会绘制圆圈,圆圈的边缘在用户的手指下方。

现在我的代码创建了一个随机半径的圆,圆心位于用户触摸屏幕的位置。我需要帮助弄清楚如何使圆的半径取决于用户的手指路径。

所以我有一个类 CircleView: UIView 这是一个可可触摸类。它具有以下功能:

    override init(frame: CGRect) 
        super.init(frame: frame)
        self.backgroundColor = UIColor.clear
    

    override func draw(_ rect: CGRect) 
        // Get the Graphics Context
        if let context = UIGraphicsGetCurrentContext() 

        // Set the circle outerline-width
        context.setLineWidth(5.0);

        // Set the circle outerline-colour
        UIColor.green.set()

        // Create Circle
        let center = CGPoint(x: frame.size.width/2, y: frame.size.height/2)
        let radius = (frame.size.width - 10)/2
        context.addArc(center: center, radius: radius, startAngle: 0.0, endAngle: .pi * 2.0, clockwise: true)

        // Draw
        context.strokePath()
        

我的类 ViewController:UIViewController 现在有以下功能:

    override func viewDidLoad() 
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.lightGray
    

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 
        for touch in touches 
            // Set the Center of the Circle
            // 1
            let circleCenter = touch.location(in: view)

            // Set a random Circle Radius
            // 2
            let circleWidth = CGFloat(25 + (arc4random() % 50))
            let circleHeight = circleWidth

            // Create a new CircleView
            // 3
            let circleView = CircleView(frame: CGRect(x: circleCenter.x, y: circleCenter.y, width: circleWidth, height: circleHeight))
            view.addSubview(circleView)
        
    

我想创建圆,不是随机半径,而是用户可以通过拖动手指设置的半径。将来,我还想为我的应用程序实现删除和移动模式。移动模式将允许用户在屏幕上拖动圆圈。

【问题讨论】:

只需使用touchesMoved 方法。将第一次触摸存储在touchesBegan 中,并获取第一次触摸和当前触摸之间的距离。那将是半径。在touchesEnded中画圈子 【参考方案1】:

好吧,同意@Marina 的评论。只有你必须添加对用户手指方向的检查,因为触摸会返回 CGPoint(x:,y:)。

let initialRadius = 0
var currentRadius = 10


func touchBegan(...) 
initialRadius = currentRadius


func touchMoves(...) 

Y = touch(in view).Y
X = touch(in view).x

if direction == vertical 
     currentdistance = substract point Y from first touch (center.Y)
(after that you have to abs() current distance for negative value)
  currentRadius =  abs(currentdistance)

 else if direction == horizontal   currentdistance = substract point X from first touch  (center.X)
(after that you have to abs() current distance for negative value)
currentRadius =  abs(currentdistance)
 else 

either X or Y




func touchEnded(...)

drawcircle(radius)

【讨论】:

以上是关于如何在CDR里面看圆的半径的主要内容,如果未能解决你的问题,请参考以下文章

在百度地图中,已知圆的圆心坐标、 和圆的半径(单位:米),怎么计算圆的坐标范围?

如何更改 d3 中圆的半径和不透明度?

画一个圆的半径和点周围的边缘

如何用C语言计算圆的周长和面积

假设圆心在(0,0)半径为0.5的圆。现有坐标(x,y),如何判断坐标是不是在圆内或圆上?有啥好公式吗?

python输入半径求圆的面积和周长和球的体积?