返回首页

我的工作为iPhone和iPod Touch,随着一些文字显示复杂的数学公式,如代数,集成,求和公式。一个应用程序

为此,我已经使用Quartz2D,下面是我已经创建。任何人都可以验证,如果这是正确的步骤,以得出一个公式吗?

我要显示大量文字的内嵌方程(和动态) - 我相信,此过程将是一个任务,使这件事动态

- (void)drawRect:(CGRect)rect

{

// Left hand side Starts --

float xaxis = 3.0f;

 

// Before bracket

NSString *textString = @"L";

[textString drawAtPoint:CGPointMake(xaxis, 50.) withFont:[UIFont fontWithName:@"Helvetica-Oblique" size:20]];

 

// Opening bracket

xaxis += 12.0f;

textString = @"(";

[textString drawAtPoint:CGPointMake(xaxis, 30.) withFont:[UIFont fontWithName:@"Helvetica" size:50]];

 

textString = @"N";

xaxis += 12.0f;

[textString drawAtPoint:CGPointMake(xaxis, 50.) withFont:[UIFont fontWithName:@"Helvetica-Oblique" size:20]];

 

// Numerator part

unichar oneChar[] = {0x2206};

xaxis += 31.0f;

textString = getTextString(oneChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 37.) withFont:[UIFont fontWithName:@"Helvetica" size:22]];

 

unichar twoChar[] = {0x03C9};

xaxis += 15.0f;

textString = getTextString(twoChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 38.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

xaxis += 15.0f;

textString = @"k";

[textString drawAtPoint:CGPointMake(xaxis, 48.) withFont:[UIFont fontWithName:@"Helvetica" size:12]];

 

// Line

CGContextRef myContext = UIGraphicsGetCurrentContext();    

CGContextSetLineWidth(myContext, 2);

CGContextSetStrokeColorWithColor(myContext, [UIColor blackColor].CGColor);    

CGContextMoveToPoint(myContext, 45, 65);

CGContextAddLineToPoint(myContext, 110, 65);

CGContextStrokePath(myContext);

 

// Denominator part

xaxis -= 40.0f;

unichar threeChar[] = {0x03C9};

textString = getTextString(threeChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 64.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

xaxis += 15.0f;

textString = @"res";

[textString drawAtPoint:CGPointMake(xaxis, 74.) withFont:[UIFont fontWithName:@"Helvetica" size:12]];

 

xaxis += 18.0f;

unichar fourChar[] = {0x0028};

textString = getTextString(fourChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 64.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

xaxis += 5.0f;

unichar fiveChar[] = {0x03B8};

textString = getTextString(fiveChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 64.) withFont:[UIFont fontWithName:@"Helvetica-Oblique" size:20]];

 

xaxis += 15.0f;

textString = @")";

[textString drawAtPoint:CGPointMake(xaxis, 64.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

// Closing bracket

xaxis += 8.0f;

textString = @")";

[textString drawAtPoint:CGPointMake(xaxis, 30.) withFont:[UIFont fontWithName:@"Helvetica" size:50]];

 

// Equal to sign

xaxis += 15.0f;

unichar sixChar[] = {0x003D};

textString = getTextString(sixChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 50.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

// Right hand side Starts --



// Numerator part

xaxis += 15.0f;

textString = @"sin";

[textString drawAtPoint:CGPointMake(xaxis, 42.) withFont:[UIFont fontWithName:@"Helvetica" size:17]];

 

xaxis += 20.0f;

textString = @"2";

[textString drawAtPoint:CGPointMake(xaxis, 38.) withFont:[UIFont fontWithName:@"Helvetica" size:12]];

 

// Inner opening bracket

xaxis += 10.0f;

textString = @"(";

[textString drawAtPoint:CGPointMake(xaxis, 37.) withFont:[UIFont fontWithName:@"Helvetica" size:22]];

 

xaxis += 8.0f;

textString = @"N";

[textString drawAtPoint:CGPointMake(xaxis, 38.) withFont:[UIFont fontWithName:@"Helvetica-Oblique" size:20]];

 

xaxis += 18.0f;

unichar sevenChar[] = {0x03C0};

textString = getTextString(sevenChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 40.) withFont:[UIFont fontWithName:@"Helvetica" size:17]];

 

xaxis += 12.0f;

unichar eightChar[] = {0x2206};

textString = getTextString(eightChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 36.) withFont:[UIFont fontWithName:@"Helvetica" size:21]];

 

xaxis += 15.0f;

unichar nineChar[] = {0x03C9};

textString = getTextString(nineChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 38.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

xaxis += 15.0f;

textString = @"k";

[textString drawAtPoint:CGPointMake(xaxis, 47.) withFont:[UIFont fontWithName:@"Helvetica" size:12]];

 

xaxis += 8.0f;

textString = @"/";

[textString drawAtPoint:CGPointMake(xaxis, 38.) withFont:[UIFont fontWithName:@"Helvetica" size:24]];

 

xaxis += 8.0f;

unichar tenChar[] = {0x03C9};

textString = getTextString(tenChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 38.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

xaxis += 15.0f;

textString = @"res";

[textString drawAtPoint:CGPointMake(xaxis, 48.) withFont:[UIFont fontWithName:@"Helvetica" size:12]];

 

xaxis += 18.0f;

textString = @"(";

[textString drawAtPoint:CGPointMake(xaxis, 38.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

xaxis += 5.0f;

unichar elevenChar[] = {0x03B8};

textString = getTextString(elevenChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 38.) withFont:[UIFont fontWithName:@"Helvetica-Oblique" size:20]];

 

xaxis += 12.0f;

textString = @")";

[textString drawAtPoint:CGPointMake(xaxis, 38.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

// Inner closing bracket

xaxis += 6.0f;

textString = @")";

[textString drawAtPoint:CGPointMake(xaxis, 37.) withFont:[UIFont fontWithName:@"Helvetica" size:22]];

 

// Line    

CGContextSetLineWidth(myContext, 2);

CGContextSetStrokeColorWithColor(myContext, [UIColor blackColor].CGColor);    

CGContextMoveToPoint(myContext, 138, 65);

CGContextAddLineToPoint(myContext, 318, 65);

CGContextStrokePath(myContext);

 

// Denominator part

xaxis -= 175.0f;    

textString = @"N";

[textString drawAtPoint:CGPointMake(xaxis, 65.) withFont:[UIFont fontWithName:@"Helvetica-Oblique" size:20]];

 

xaxis += 18.0f;

textString = @"2";

[textString drawAtPoint:CGPointMake(xaxis, 63.) withFont:[UIFont fontWithName:@"Helvetica" size:12]];

 

xaxis += 8.0f;

textString = @"sin";

[textString drawAtPoint:CGPointMake(xaxis, 68.) withFont:[UIFont fontWithName:@"Helvetica" size:17]];

 

xaxis += 20.0f;

textString = @"2";

[textString drawAtPoint:CGPointMake(xaxis, 63.) withFont:[UIFont fontWithName:@"Helvetica" size:12]];

 

// Inner opening bracket

xaxis += 10.0f;

textString = @"(";

[textString drawAtPoint:CGPointMake(xaxis, 64.) withFont:[UIFont fontWithName:@"Helvetica" size:22]];

 

xaxis += 8.0f;

unichar twelveChar[] = {0x03C0};

textString = getTextString(twelveChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 68.) withFont:[UIFont fontWithName:@"Helvetica" size:17]];

 

xaxis += 12.0f;

unichar thirteenChar[] = {0x2206};

textString = getTextString(thirteenChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 65.) withFont:[UIFont fontWithName:@"Helvetica" size:21]];

 

xaxis += 15.0f;

unichar fourteenChar[] = {0x03C9};

textString = getTextString(fourteenChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 67.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

xaxis += 15.0f;

textString = @"k";

[textString drawAtPoint:CGPointMake(xaxis, 75.) withFont:[UIFont fontWithName:@"Helvetica" size:12]];

 

xaxis += 8.0f;

textString = @"/";

[textString drawAtPoint:CGPointMake(xaxis, 64.) withFont:[UIFont fontWithName:@"Helvetica" size:24]];

 

xaxis += 8.0f;

unichar fifteenChar[] = {0x03C9};

textString = getTextString(fifteenChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 67.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

xaxis += 15.0f;

textString = @"res";

[textString drawAtPoint:CGPointMake(xaxis, 75.) withFont:[UIFont fontWithName:@"Helvetica" size:12]];

 

xaxis += 18.0f;

textString = @"(";

[textString drawAtPoint:CGPointMake(xaxis, 66.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

xaxis += 5.0f;

unichar sixteenChar[] = {0x03B8};

textString = getTextString(sixteenChar, 1);

[textString drawAtPoint:CGPointMake(xaxis, 66.) withFont:[UIFont fontWithName:@"Helvetica-Oblique" size:20]];

 

xaxis += 12.0f;

textString = @")";

[textString drawAtPoint:CGPointMake(xaxis, 66.) withFont:[UIFont fontWithName:@"Helvetica" size:20]];

 

// Inner closing bracket

xaxis += 6.0f;

textString = @")";

[textString drawAtPoint:CGPointMake(xaxis, 64.) withFont:[UIFont fontWithName:@"Helvetica" size:22]];

 

// Extra text for information

xaxis = 6.0f;

textString = @"Above is the example of an equation drawn using";

[textString drawAtPoint:CGPointMake(xaxis, 120.) withFont:[UIFont fontWithName:@"Helvetica" size:14]];

xaxis = 6.0f;

textString = @"Quartz2D";

[textString drawAtPoint:CGPointMake(xaxis, 140.) withFont:[UIFont fontWithName:@"Helvetica" size:14]];

 

}

 

static NSString *getTextString(unichar chars[], int charLength)

{   

NSString *uniString = [NSString stringWithCharacters:chars length: charLength];

return uniString;

}
:8547046 |会员

回答