LoginSignup
2
0

More than 3 years have passed since last update.

面積比がそれっぽいベン図を描いてみた(swift)

Last updated at Posted at 2018-02-17

はじめに

与えられた面積比のベン図を描くこれをみてそんな計算ができるのかと思いそれっぽい面積比のベン図を描いてみました。

そもそもベン図って面積比を気にするようなものではないと思いますが、面積比がそれっぽいベン図っぽいものを描いてみました。

2019/04/21 せっかくなんでswift5.0対応しました
2019/10/16 せっかくなんでSwiftPM対応しました

GitHub

AMVennDiagramView

見た目

スクリーンショット 2018-02-17 18.31.11.png

機能

  • 円の色の設定ができる
  • 円の枠線色の設定ができる
  • 円に表示する文字の設定ができる
  • 円に表示する文字色の設定ができる
  • 円に表示する文字フォントの設定ができる

使い方

  1. 値を設定する

    @IBOutlet weak private var vennDiagramView: AMVennDiagramView!
    
    vennDiagramView.setupVennDiagram(value1: 1000, value2: 500, commonValue: 200)
    vennDiagramView.dataSource = self
    

    値がおかしい場合は図は表示されない。(共通部分がvalue1, value2よりも大きい場合など)

  2. デリゲートを設定する

    /// 円の塗りつぶし色を設定
    func vennDiagramView(_ vennDiagramView:AMVennDiagramView, fillColorForSection section: Int) -> UIColor
    
    /// 円の枠線色を設定
    func vennDiagramView(_ vennDiagramView:AMVennDiagramView, strokeColorForSection section: Int) -> UIColor
    
    /// 円に表示する文字を設定
    func vennDiagramView(_ vennDiagramView:AMVennDiagramView, titleForSection section: Int, value: CGFloat) -> String
    
    /// 円の重なり部分に表示する文字を設定(共通部分がない場合は呼ばれない)
    func titleForCommonArea(in vennDiagramView:AMVennDiagramView, value: CGFloat) -> String
    
    /// 円に表示する文字色を設定
    func vennDiagramView(_ vennDiagramView:AMVennDiagramView, textColorForSection section: Int) -> UIColor
    
    /// 円の重なり部分に表示する文字色を設定
    func textColorForCommonArea(in vennDiagramView:AMVennDiagramView) -> UIColor
    
    /// 円に表示する文字フォントを設定
    func vennDiagramView(_ vennDiagramView:AMVennDiagramView, textFontForSection section: Int) -> UIFont
    
    /// 円の重なり部分に表示する文字フォントを設定
    func textFontForCommonArea(in vennDiagramView:AMVennDiagramView) -> UIFont
    

    sectionはsetupVennDiagram(value1:, value2:, commonValue:)のvalue1が0,value2が1に相当する。

さいごに

計算は少し妥協している点があるので共通部分の面積比に多少ずれがあると思いますが、私にはこれが限界でした。

私はほぼObjective-Cしか使ったことがないペーペーのプログラマーなので記事内容やgithubのコードにおかしなところがあればご指摘いただければ幸いです。

つくったのまとめ

動作確認用にまとめたプロジェクト

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0