Radial sort in line
Radial sort in line
HTML
Radial sort in line
<div id="draw"></div>
<div class="link">* <a href="http://www.scriptspot.com/forums/3ds-max/scripts-wanted/radial-sort-in-line">Scriptspot</a></div>
CSS
body{text-align:center;font-size:19px; padding:12px;}
a {font-size:9px; color:#000;text-decoration:none;}
.link {font-size:9px;}
JavaScript
var dist2p = function(p1, p2){
var a = p1.x, b = p1.y, c = p2.x, d = p2.y;
with (Math) {
return sqrt(abs((d - b) * (d - b) + (c - a) * (c - a)));
}
}
//implicit equation of the line
function ccnmplct(a, b){
//a,b vector direccion b1-a1 , b2-a2
var v1m = b.x - a.x;
var v1n = b.y - a.y;
var c1x = v1m;
var c1y = v1n;
result = [v1n, -v1m, (a.y * v1m) - (v1n * a.x)]
return result
}
function hemisphere(a, b, c){
//a, fist point line
//b, last point line
//c point
var abc = ccnmplct(a, b);
var v1a = abc[0] * c.x + abc[1] * c.y + abc[2]
var side = 0
if (v1a > 0) {
side = 1
}
if (v1a < 0) {
side = -1
}
if (v1a == 0) {
side = 0
}
return side
}
function order(a, b){
return a.dist - b.dist;
}
function extract(obj, key, val){
var s = []
for (var i = 0; i < obj.length; i++) {
if (obj[i][key] == val) {
s.push(obj[i])
}
}
return s
}
//////////////////
//////////////////
var canvas = Raphael('draw', 602, 302);
var x = 10, y = 10, r = 1
var num = 200
var radius = 100
var med = {
x: 600 / 3 - 1,
y: 300 / 2 + 1
}
var arr = []
var angle = Math.PI * 2 / num
//canvas.circle(med.x,med.y,radius).attr({stroke: 'black', 'stroke-width': 1});
for (var a = 0; a < num; a++) {
var rand = Math.random() * 360
x = med.x + radius * Math.sin(rand * angle)
y = med.y + radius * Math.cos(rand * angle)
arr.push({
x: x,
y: y
})
}
for (var a = 0; a < num; a++) {
canvas.circle(arr[a].x, arr[a].y, r).attr({
stroke: 'black',
'stroke-width': 1
});
if (a > 0) {
canvas.path('M' + arr[a - 1].x + ',' + arr[a - 1].y + ' ' + arr[a].x + ',' + arr[a].y).attr({
stroke: 'black',
'stroke-width': 1
});
}
}
/////////////////////
var x = 10, y = 10, r = 1
var radius = 100
var med = {
x: 600 * 2 / 3 + 1,
y: 300 / 2 +...