OC->06 心塞!



//
//  main.m
//  06作业
//
//  Created by apple on 15/8/9.
//  Copyright (c) 2015年 金诗妍. All rights reserved.
//


#import <Foundation/Foundation.h>
#import <math.h>

// Point2D类
@interface Point2D : NSObject
{
    double _x; //x值
    double _y; //y值
}

// x的setter和getter
- (void)setX:(double)x;
- (double)x;

// y的setter和getter
- (void)setY:(double)y;
- (double)y;

// 一个类对象方法同时设置x和y
- (void)setX:(double)x andY:(double)y;

// 计算跟其他点的距离
- (double)distanceWithOther:(Point2D *)other;
// 计算两点间距离
+ (double)distanceBetweenPoint1:(Point2D *)p1 andPoint2:(Point2D *)p2;

@end

/**********方法**********/
@implementation Point2D
// x的setter和getter
- (void)setX:(double)x
{
    _x = x;
}
- (double)x
{
    return _x;
}

//y的setter和getter
- (void)setY:(double)y
{
    _y = y;
}
- (double)y
{
    return _y;
}

// 同时设置x和y
- (void)setX:(double)x andY:(double)y
{
    [self setX:x];
    [self setY:y];
}

// 计算与另外一个点的距离
- (double)distanceWithOther:(Point2D *)other
{
    double xDelta = _x - [other x];
    double xDeltaPF = pow(xDelta,2);
    
    double yDelta = _y - [other y];
    double yDeltaPF = pow(yDelta,2);
    
    return sqrt(xDeltaPF+yDeltaPF);
}
// 计算两点间距离
+ (double)distanceBetweenPoint1:(Point2D *)p1 andPoint2:(Point2D *)p2
{
    return [p1 distanceWithOther:p2];   // 类方法调用对象方法
}
@end

// 圆类
@interface Circle : NSObject
{
    double _radius;
    Point2D *_point;
}
//半径的setter和getter
- (void)setRadius:(double)radius;
- (double)radius;
//Point2D的setter and getter
- (void)setPoint:(Point2D *)point;
- (Point2D *)point;

// 判断与其他圆是否重叠,是则返回YES否则返回NO
- (BOOL)isInteractWithOther:(Circle *)other;
// 判断两个圆是否重叠,是则返回YES否则返回NO
+ (BOOL)isInteractBetweenCircle1:(Circle *)c1 andCircle2:(Circle *)c2;
@end


@implementation Circle
// 半径的setter和getter
- (void)setRadius:(double)radius
{
    _radius = radius;
}
- (double)radius
{
    return _radius;
}

//Point2D的setter and getter
- (void)setPoint:(Point2D *)point
{
    _point = point;
}
- (Point2D *)point
{
    return _point;
}

// 判断与其他圆是否重叠,是则返回YES否则返回NO
- (BOOL)isInteractWithOther:(Circle *)other
{
    Point2D *p1 = [self point];
    Point2D *p2 = [other point];
    
    // 两点间距离
    double distance = [p1 distanceWithOther:p2];
    // 半径和
    double radiusSum = [self radius] + [other radius];
    
    if(distance < radiusSum)
    {
        return 1;
    }
    else
    {
        return 0;
    }
    return distance < radiusSum;
}
// 判断两个圆是否重叠,是则返回YES否则返回NO
+ (BOOL)isInteractBetweenCircle1:(Circle *)c1 andCircle2:(Circle *)c2
{
    return [c1 isInteractWithOther:c2];
}
@end


int main()
{
    // 圆对象
    Circle *c1 = [Circle new];
    [c1 setRadius:5];
    
    // 创建圆心对象
    Point2D *p1 = [Point2D new];
    [p1 setX:10 andY:15];
    
    // 设置圆心
    [c1 setPoint:p1];
    [[c1 point] setX:15];   // 圆心变更为(15,15)
    
    // 圆对象
    Circle *c2 = [Circle new];
    [c2 setRadius:2];
    
    // 创建圆心对象
    Point2D *p2 = [Point2D new];
    [p2 setX:12 andY:19];
    
    // 设置圆心
    [c2 setPoint:p2];
    
    /*对象方法
    BOOL juage = [c1 isInteractWithOther:c2];
    NSLog(@"%d",juage);
    return 0;
     */
    // 类方法
    
    BOOL juage = [Circle isInteractBetweenCircle1:c1 andCircle2:c2];
    NSLog(@"%d",juage);
}

此次debug心塞死了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
void TIM2_PWMShiftInit_3(TypeDef_Tim* Tim) { TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_OC_InitTypeDef sConfigOC = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0}; Tim->Psc=3; Tim->TimeClock=200000000;// Tim->Frequence=2000;// Tim->Duty=0.5; Tim->DT=2000;// Tim->Arr=Tim->TimeClock/(Tim->Psc+1)/Tim->Frequence/2;// // Tim->CH1Ccr=Tim->Arr-(Tim->Arr*Tim->Duty)-Tim->DT/((Tim->Psc+1)*(1000000000.0f/Tim->TimeClock));// Tim->CH2Ccr=Tim->Arr-(Tim->Arr*Tim->Duty); Tim->Htim.Instance = TIM2; Tim->Htim.Init.Prescaler = Tim->Psc; Tim->Htim.Init.CounterMode = TIM_COUNTERMODE_CENTERALIGNED3; Tim->Htim.Init.Period = Tim->Arr; Tim->Htim.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; Tim->Htim.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; HAL_TIM_Base_Init(&Tim->Htim); HAL_TIM_Base_Start_IT(&Tim->Htim);// sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; HAL_TIM_ConfigClockSource(&Tim->Htim, &sClockSourceConfig); HAL_TIM_OC_Init(&Tim->Htim); sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; HAL_TIMEx_MasterConfigSynchronization(&Tim->Htim, &sMasterConfig); sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = Tim->CH1Ccr; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;// sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_OC_ConfigChannel(&Tim->Htim, &sConfigOC, TIM_CHANNEL_3); __HAL_TIM_ENABLE_OCxPRELOAD(&Tim->Htim, TIM_CHANNEL_3); sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = Tim->CH2Ccr; sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;// sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_OC_ConfigChannel(&Tim->Htim, &sConfigOC, TIM_CHANNEL_4); __HAL_TIM_ENABLE_OCxPRELOAD(&Tim->Htim, TIM_CHANNEL_4); __HAL_RCC_GPIOB_CLK_ENABLE(); /**TIM2 GPIO Configuration PB10 ------> TIM2_CH3 PB11 ------> TIM2_CH4 */ GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF1_TIM2; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_TIM_PWM_Start(&Tim->Htim, TIM_CHANNEL_3); HAL_TIM_PWM_Start(&Tim->Htim, TIM_CHANNEL_4); } TIM2_PWMShiftInit_3(&MyTim2);是什么意思
04-24

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值