目前共有7篇帖子。 内容转换:不转换▼
 
点击 回复
230 6
【计算器】向量加法计算器V1.0
一派护法 十九级
1楼 发表于:2014-12-14 10:56
<!DOCTYPE HTML>
<html>
<meta charset="ANSI">
<title>Vector Addition</title>
<style>
.text
{
    width: 50px;
}
#result
{
    margin-top: 8px;
}
</style>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
<script>
$(document).ready(function(){
    $("#cal").click(function(){
        var x = Number($("#x").val());
        var A = Number($("#A").val());
        var y = Number($("#y").val());
        var B = Number($("#B").val());
        
        if (x < 0)
        {
            x = -x;
            A += 180;
        }
        if (y < 0)
        {
            y = -y;
            B += 180;
        }
        
        //A has to be greater than B
        A = firstperiod(A);
        B = firstperiod(B);
        if (B > A)
        {
            var B0 = B;
            B = A;
            A = B0;
        }
        
        var z_sq = x * x + y * y + 2 * x * y * Math.cos(rad(A - B));
        var z = Math.sqrt(z_sq);
        if (z > 0)
        {
            var cos_D = (x * x - y * y + z_sq) / (2 * x * z);
            var D = Math.acos(cos_D);
            D = degree(D);
            var C = 0;
            if (A - B <= 180)
                C = B + D;
            else
                C = A + D;
            $("#result").html("= " + z + " vec " + C + "&deg;");
        }
        else
            $("#result").html("= <b>0</b>"); //zero vector
    });
});

function firstperiod(angle)
{
    if (angle < 0)
    {
        angle = -angle;
        angle = 360 - angle % 360;
        if (angle == 360)
            angle = 0;
    }
    else
        angle = angle % 360;
    return angle;
}

function rad(dg)
{
    return dg * Math.PI / 180;
}
function degree(r)
{
    var d = r * 180 / Math.PI;
    return Math.round(d * 1000) / 1000;
}
</script>
<body>
<h3>Vector Addition Calculator V1.0</h3>
<div>
    <input id="x" type="text" value="1" class="text">
    vec
    <input id="A" type="text" value="0" class="text">
    &deg;
    +
    <input id="y" type="text" value="1" class="text">
    vec
    <input id="B" type="text" value="0" class="text">
    &deg;
    <input id="cal" type="button" value="Calculate">
</div>
<div id="result"></div>
</body>
</html>
一派护法 十九级
2楼 发表于:2014-12-14 10:56
把上面的内容保存为html文件,然后运行
一派护法 十九级
3楼 发表于:2014-12-14 10:57
项目组长 二十一级
4楼 发表于:2014-12-14 11:10
略屌啊!
一派护法 十九级
5楼 发表于:2014-12-14 11:13
在该计算器中,x,y可以为任意值,角度可以为任意角。
一派护法 十九级
6楼 发表于:2014-12-14 11:17
一派护法 十九级
7楼 发表于:2014-12-14 11:19
vec0°+vec90°与vec0°+2vec90°的向量和角度就大不相同。虽然相加的两个向量的角度都相同。

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:230 回复数:6
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2014-12-14 11:19

本吧热门帖子

本吧精品帖子

 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。