48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
| //
 | |
| //  Diamond.swift
 | |
| //  Set
 | |
| //
 | |
| //  Created by Oliver Hnát on 08.04.2023.
 | |
| //
 | |
| 
 | |
| import SwiftUI
 | |
| 
 | |
| 
 | |
| struct Diamond: Shape {
 | |
|     
 | |
|     func path(in rect: CGRect) -> Path {
 | |
| 
 | |
|         let leftSide = CGPoint(x: rect.minX, y: rect.midY)
 | |
|         let bottom = CGPoint(x: rect.midX, y: rect.midY-rect.maxY/4)
 | |
|         let rightSide = CGPoint(x: rect.maxX, y: rect.midY)
 | |
|         let top = CGPoint(x: rect.midX, y: rect.midY+rect.maxY/4)
 | |
|         
 | |
|         var p = Path()
 | |
|         
 | |
|         p.move(to: rightSide)
 | |
|         p.addLine(to: top)
 | |
|         p.addLine(to: leftSide)
 | |
|         p.addLine(to: bottom)
 | |
|         p.addLine(to: rightSide)
 | |
|         
 | |
|         return p
 | |
|     }
 | |
|     
 | |
| }
 | |
| 
 | |
| struct Diamond_Previews: PreviewProvider {
 | |
|     static var previews: some View {
 | |
|         GeometryReader {geometry in
 | |
|             VStack {
 | |
|                 Diamond()
 | |
|                     .size(CGSize(width: geometry.size.width, height: geometry.size.height / 3))
 | |
|                 Diamond()
 | |
|                     .size(CGSize(width: geometry.size.width, height: geometry.size.height / 3))
 | |
|                 Diamond()
 | |
|                     .size(CGSize(width: geometry.size.width, height: geometry.size.height / 3))
 | |
|             }
 | |
|         }
 | |
|         .padding()
 | |
|     }
 | |
| }
 |