2016-08-05 88 views
0

vielleicht habe ich nicht genügend Aufmerksamkeit in Mathematik zahlen, aber ich erinnere mich nicht, wie ich das lösen kann. in jquery füge ich eine randomisierte Beschneidungspfad auf meine Bilder wie so:Wie kann ich einen zufälligen Prozentsatz mit steigendem Wert verringern

var max=100; 
var spread=5; 
jQuery.each($("img"), function(i, val) { 
    $(val).clipPath(
     [ 
      [Math.floor(Math.random()*spread*10)/10, Math.floor(Math.random()*spread*10)/10], 
      [max-Math.floor(Math.random()*spread*10)/10, Math.floor(Math.random()*spread*10)/10], 
      [max-Math.floor(Math.random()*spread*10)/10, max-Math.floor(Math.random()*spread*10)/10], 
      [Math.floor(Math.random()*spread*10)/10, max-Math.floor(Math.random()*spread*10)/10] 
     ], 
     {isPercentage:true} 
    ); 
}) 

dies funktioniert wie ein Charme, aber da die Werte in Prozent sind, können die ziemlich extrem geworden mit dem Bild größer. also was kann ich verwenden, um die "Verbreitung" mit einem steigenden Höhe/Breite-Wert zu verringern? hilft Math.log?

dank

Antwort

0

Ich würde versuchen, die Ausbreitung einer Funktion der Höhen- und Breitenwerte machen. Setzen Sie einen Maßstab bei spread = 5 für Bilder bis zu ... x ... Pixel (eine bekannte Größe, von der Sie wissen, dass sie gut funktioniert). Ändern Sie dann die Größe, wenn ein Bild größer als diese bekannte Größe ist.

+0

Dank, die sicherlich arbeitet, würde aber nur aus purem Interesse würde Ich mag um zu sehen, ob es eine weniger manuelle Lösung geben würde :) so eine allmähliche Abnahme der Verbreitung – zantafio

0

Sets verteilt = konstant/(Höhe + Breite) oder verteilt = konstant/(Höhe^2 + Breite^2)^0,5