2012-02-27 16 views
8

estoy otra vez aquí con dos preguntas, tantoefecto Relieve en el núcleo gráfico

  1. -relacionados entre sí quiero dibujar líneas en relieve con núcleo gráfico. ¿Puede alguien sugerirme cómo dar sombra interior a la línea dibujada en eventos táctiles?
  2. Incluso para dibujar sombras externas. Sombras dibujadas superposiciones en el medio. y la línea dibujada con colores que no sean negros es como el gusano. ¿Alguien puede ayudarme? La imagen siguiente ilustra lo que quiero explicar para la Pregunta 2: enter image description here Las creaciones de sombras no son uniformes. Se oscurecen en algunos puntos

Estoy añadiendo el código que estoy usando para dibujar líneas ..

for (int i=0; i<[currentPath count]; i++) 
    { 
     CGPoint mid1 = [[self midPoint:[currentPath objectAtIndex:i+1] :[currentPath objectAtIndex:i]] CGPointValue]; 
     CGPoint mid2 = [[self midPoint:[currentPath objectAtIndex:i+2] :[currentPath objectAtIndex:i+1]] CGPointValue]; 
     CGContextMoveToPoint(context, mid1.x, mid1.y); 
     CGContextAddQuadCurveToPoint(context, [[currentPath objectAtIndex:i+1] CGPointValue].x, [[currentPath objectAtIndex:i+1] CGPointValue].y, mid2.x, mid2.y); 
     CGContextSetShadow(context, CGSizeMake(-2, -2), 3); 

     CGContextSetLineCap(context, kCGLineCapRound); 
     CGContextSetStrokeColorWithColor(context,[color CGColor]);    
     CGContextSetLineWidth(context, linewidth);    
     CGContextStrokePath(context); 
     i+=2; 
    } 
+2

Por favor absténgase de utilizar signos de interrogación en hordas. – Till

+0

@Till Fine ahora? – DivineDesert

+0

Por favor, muestre su código de dibujo. Hasta que lo hagas, solo podemos adivinar lo que estás haciendo. – sosborn

Respuesta

4

encontré mi solución .. problema era muy tonta ... estaba atizando ruta en cada iteración, que estaba creando el problema .. Ahora puedo dibujar incluso con menos de alfa 1 ..

CGContextStrokePath(context); 

Esta línea sale para bucle ... Y todo está funcionando bien ahora :)

0

Parece que está dibujando el camino mediante el uso de una serie de círculos.

El problema es que ha establecido la sombra en los puntos individuales, y es por eso que está obteniendo los efectos extraños.

Una posible solución: no coloque una sombra sobre los puntos, ponga en la ruta: duplique la línea que ha trazado, dibuje en un color diferente, desviélo y colóquelo debajo de su línea actual.

Alternativamente, si utiliza capas, eche un vistazo a las rutas de sombra.

+1

No estoy dibujando el camino usando una serie de círculos, ya que estoy agregando sombras a las líneas, y las líneas se dibujan con una matriz de puntos, cada línea pequeña se cubre con sombras y así se pueden ver series de círculos. – DivineDesert

+0

Esto es similar al efecto que obtenía cuando dibujaba líneas con valores alfa menores que 1 ... @Abizern – DivineDesert

3

Para las sombras superpuestas, desea una capa de transparencia para componerlas primero. Consulte Transparency Layers en la Guía de programación de Quartz 2D.

+0

El punto que dijo está bien ... Pero, ¿dónde debería agregar capas de transparencia? Como dibujo líneas pequeñas al tacto eventos ... No se pueden agregar líneas a la capa de transparencia ... Intenté esto antes ... Pero sin una solución positiva ... Si estaba haciendo algo incorrecto, entonces no sé ...Pero mi confusión es dibujar capas de transparencia ¿a quién? – DivineDesert

Cuestiones relacionadas