CoolFace
Apppublic

RustX/Autonomous_Driving_Simulation

sourceHugging Faceupdated 3y agoView on Hugging Face
3likes
utils.js49 linesDownload Raw Back to root
1function lerp(a,b,t){2    return a+(b-a)*t;3}4 5function getIntersection(A,B,C,D){6    const tTop=(D.x-C.x)*(A.y-C.y)-(D.y-C.y)*(A.x-C.x);7    const uTop=(C.y-A.y)*(A.x-B.x)-(C.x-A.x)*(A.y-B.y);8    const bottom=(D.y-C.y)*(B.x-A.x)-(D.x-C.x)*(B.y-A.y);9 10    if(bottom!=0){11        const t=tTop/bottom;12        const u=uTop/bottom;13        if(t>=0 && t<=1 && u>=0 && u<=1){14            return {15                x:lerp(A.x,B.x,t),16                y:lerp(A.y,B.y,t),17                offset:t18            }19        }20    }21 22    return null;23}24 25//polylines26function polysIntersect(poly1, poly2){27    for(let i=0;i<poly1.length-1;i++){28        for(let j=0;j<poly2.length-1;j++){29            const touch=getIntersection(30                poly1[i],31                poly1[i+1],32                poly2[j],33                poly2[j+1]34            );35            if(touch){36                return true;37            }38        }39    }40    return false;41}42 43function getRGBA(value){44    const alpha=Math.abs(value);45    const R=value<0?0:255;46    const G=R;47    const B=value>0?0:255;48    return "rgba("+R+","+G+","+B+","+alpha+")";49}