- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
现在需要帮助。我可以用MKPolyline和MKPolylineView画线,但是如何在MKMapView上的两个坐标之间画弧线或曲线呢?非常感谢。
câu trả lời hay nhất
在回答问题之前,重要的是要提到 MKOverlayView已弃用,从 iOS7 开始我们应该使用 MKOverlayRenderer :
In iOS 7 and later, use the MKOverlayRenderer class to display overlays instead.
我们现在可以分解如何实现圆弧/曲线:
let polyline = MKPolyline(coordinates: coordinates, count: coordinates.count)
mapView.addOverlay(polyline)
MKMapView
需要我们提供一个合适的 MKOverlayRenderer
对应于我们在第 1 部分创建的 MKPolyline
. phương pháp我们需要的是:mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer
基本上:
Asks the delegate for a renderer object to use when drawing the specified overlay.
MKOverlayPathRenderer
进行子类化,它显然继承自 MKOverlayRenderer
并且如文档所述:Use this renderer when your overlay's shape is defined by a CGPath object. By default, this renderer fills the overlay's shape and represents the strokes of the path using its current attributes.
因此,如果我们按原样使用新的子类对象,我们将得到一个开箱即用的解决方案,它是从我们在第 1 节中定义的第一个坐标到第二个坐标的实线,但是由于我们想要一条曲线,我们必须为此覆盖一个方法:
You can use this class as-is or subclass to define additional drawing behaviors. If you subclass, override the createPath() method and use that method to build the appropriate path object. To change the path, invalidate it and recreate the path using whatever new data your subclass has obtained.
这意味着在我们的 CustomObject: MKOverlayPathRenderer
中,我们将覆盖 createPath
:
override func createPath() {
let polyline = overlay as! MKPolyline
// Getting the coordinates from the polyline
let points = polyline.points()
// Taking the center of the polyline (between the 2 coordiantes) and converting to CGPoint
let centerMapPoint = MKMapPoint(polyline.coordinate)
// Converting coordinates to CGPoint corresponding to the specified point on the map
let startPoint = point(for: points[0])
let endPoint = point(for: points[1])
let centerPoint = point(for: centerMapPoint)
// I would like to thank a co-worker of mine for the controlPoint formula :)
let controlPoint = CGPoint(x: centerPoint.x + (startPoint.y - endPoint.y) / 3,
y: centerPoint.y + (endPoint.x - startPoint.x) / 3)
// Defining our new curved path using Bezier path
let myPath = UIBezierPath()
myPath.move(to: startPoint)
myPath.addQuadCurve(to: endPoint,
controlPoint: controlPoint)
// Mutates the solid line with our curved one
path = myPath.cgPath
}
我们基本上完成了。您可能需要考虑添加宽度/描边/颜色等,这样您可以看到曲线。
4.1。覆盖 override func draw(_ mapRect: MKMapRect, zoomScale: MKZoomScale, in context: CGContext)
之后,就在添加渐变之前,您必须添加第 3 节中的相同代码,但不要更改内部 con đường
您必须将其添加到提供的上下文中:
context.move(to: startPoint)
context.addQuadCurve(to: endPoint,
control: controlPoint)
这基本上为我们提供了有关渐变着色所需的曲线。
4.2。我们需要使用 path.boundingBox
而不是使用 path.boundingBoxOfPath
因为:
... bao gồm control points for Bézier and quadratic curves.
不同于boundingBoxOfPath
:
... không including control points for Bézier and quadratic curves.
希望对您有所帮助:)
关于iphone - 如何在MKMapView上用MKOverlayView绘制圆弧/曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5673303/
Tôi đang cố gắng tạo biểu đồ đường cong lãi suất kho bạc so sánh tỷ giá hối đoái ở hai ngày khác nhau. Tôi đang gặp khó khăn khi kết hợp hai đường cong và tạo ra một hình dạng gọn gàng. Câu hỏi của tôi: Làm thế nào để vẽ hai đường cong lãi suất với nhau,
Tôi đang sử dụng gói RandomForest trong nền tảng R cho nhiệm vụ phân loại. rf_object<-randomForest(data_matrix, label_factor, cutoff=c(k,1-k))
Nhà thiết kế của tôi đã đưa cho tôi thiết kế này, nhưng tôi không biết cách xử lý tốt nhất các đường cong bên trên và bên dưới hình ảnh. Tôi đã xem xét đường dẫn clip nhưng không biết cách uốn cong nó. Tôi không muốn sử dụng hình ảnh nếu tôi có thể giúp được. Câu trả lời hay nhất bạn có thể sử dụng bord
Tôi đang sử dụng các nét và đường dẫn trong Canvas để tạo hai đường mà tôi muốn uốn cong như hiệu ứng sóng. Thay vì tạo một hình ảnh thực tế trong Photoshop, bạn làm điều này. Có ai có thể giúp tôi có được đường cong hiển thị bên dưới không? Tôi cũng muốn triển khai các vòng tròn ở cuối
Tôi đang cố gắng phát triển một mã có thể xử lý các đường dẫn/đường cong của khung hình ảnh. Tôi muốn có một vectơ điểm từ khung giữa hai điểm. Mã này kết thúc sau khi thêm một vài điểm nhưng không tìm thấy giải pháp nào. #include "opencv2/highgui/
Cần giúp đỡ ngay bây giờ. Tôi có thể vẽ các đường bằng MKPolyline và MKPolylineView, nhưng làm cách nào để vẽ một vòng cung hoặc đường cong giữa hai tọa độ trên MKMapView? Cảm ơn bạn rất nhiều. Câu trả lời hay nhất Trước khi trả lời câu hỏi, điều quan trọng cần đề cập đến MKOv
Tôi đang cố gắng áp dụng ý tưởng của sklearn về tiện ích mở rộng ROC cho nhiều lớp vào tập dữ liệu của mình. Các đường cong ROC của tôi cho mỗi lớp dường như tìm thấy một đường thẳng, hủy bỏ ví dụ sklearn hiển thị sự dao động của đường cong. TÔI
Tôi có vấn đề khái niệm sau đây mà tôi không thể hiểu được. Dưới đây là ví dụ về dữ liệu khảo sát trong đó tôi có cột thời gian cho biết ai đó phải mất bao lâu để trả lời một câu hỏi nhất định. Bây giờ, điều tôi quan tâm là lượng dọn dẹp sẽ thay đổi như thế nào dựa trên ngưỡng này, tức là điều gì sẽ xảy ra nếu tôi tăng ngưỡng và nếu tôi giảm
Làm cách nào tôi có thể vẽ tỷ lệ cảnh báo sai trên mỗi cửa sổ so với tỷ lệ bỏ lỡ (hoặc xác suất cảnh báo sai) và ROC (đường cong vận hành máy thu) cho ứng dụng phát hiện đối tượng bằng video? Làm thế nào để xác định số lượng kết quả dương tính giả và lượt truy cập? Một ví dụ rất hữu ích. Câu trả lời hay nhất Thật đơn giản. Lưu trữ tất cả các giá trị đúng (H0)
Tôi đang cố gắng vẽ đường cong ROC để phân loại rừng ngẫu nhiên. Cốt truyện hoạt động, nhưng tôi nghĩ rằng tôi đang vẽ sai dữ liệu vì cốt truyện kết quả chỉ có một điểm (độ chính xác). Đây là mã tôi sử dụng: set.seed(55) data.controls <
Tôi có hai mô hình như sau: thư viện (mlbench) dữ liệu (Sonar) thư viện (caret) set.seed(998) my_data <- Sonar fitControl <-
Có thể biết liệu một bộ phân loại có bị trang bị quá mức hay không chỉ bằng cách nhìn vào đường cong ROC của nó? Tôi thấy nó có thể bị trang bị quá mức nếu AUC của nó quá cao (ví dụ: 98%), nhưng điều đó cũng có thể có nghĩa là bộ phân loại rất tốt. Có cách nào để phân biệt giữa hai trường hợp này không? Câu trả lời hay nhấtCâu trả lời ngắn:
Tôi đang tạo một biểu đồ trong JavaFX cần được kết nối bằng các cạnh có hướng. Tốt nhất là một đường cong bicubic. Có ai biết cách thêm mũi tên vào không? Tất nhiên, mũi tên phải được xoay theo phần cuối của đường cong. Đây là một ví dụ đơn giản không có mũi tên: import javafx.ap
Tôi cần làm rõ một số kỹ thuật tôi đang thử. Tôi đang cố di chuyển một thực thể từ điểm A đến điểm B, nhưng tôi không muốn thực thể đó di chuyển theo đường thẳng. Ví dụ: nếu thực thể nằm ở x: 0, y:0 và tôi muốn đạt đến điểm x:50, y: 0, tôi muốn
Tôi đang cố vẽ vùng bóng mờ bên dưới đường cong, nhưng vùng bóng mờ nằm phía trên đường cong. Bất cứ ai có thể cho tôi biết có gì sai với mã của tôi? x=seq(0,30) y1=exp(-0.1*x) cốt truyện(x,y1,type="l",lwd=2,col="
Tôi cần làm rõ một số kỹ thuật tôi đang thử. Tôi đang cố di chuyển một thực thể từ điểm A đến điểm B, nhưng tôi không muốn thực thể đó di chuyển theo đường thẳng. Ví dụ: nếu thực thể nằm ở x: 0, y:0 và tôi muốn đạt đến điểm x:50, y: 0, tôi muốn
Tôi có một mô hình trông như thế này: Library(mlbench) data(Sonar) Library(caret) set.seed(998) my_data <- Sonar fitControl <
Có cách nào để lấy điểm trên đường cong ROC từ Spark ML trong pyspark không? Trong tài liệu tôi thấy một ví dụ về Scala, nhưng không thấy python: https://spark.apache.org/docs/2.1
Tôi đang cố gắng sử dụng thuật toán Hệ số ngoại lệ cục bộ (LOF) và muốn vẽ đường cong ROC. Vấn đề là thư viện do scikit-learn cung cấp không tạo ra điểm cho mỗi dự đoán. Vì vậy, có cách nào để giải quyết vấn đề này?
Tôi hiện đang sử dụng GDI+ để vẽ biểu đồ dạng đường và Graphics.DrawCurve để làm mịn các đường kẻ. Vấn đề là đường cong không phải lúc nào cũng khớp với những điểm tôi nhập khiến đường cong đi ra ngoài khung đồ thị tại một số điểm như hình bên dưới (màu đỏ là Graph
Tôi là một lập trình viên xuất sắc, rất giỏi!