• 최근 바뀜
  • 임의 문서로
  • 소개
  • 대문
  • 피니엔진 소개
  • 임의 문서

  • 공식가이드
  • 시작하기
  • 명령어 목록
  • 피니엔진 문법
  • 루아 확장

  • 도움
  • 튜토리얼
  • 테스트 실행
  • 내보내기
  • 사용자의견보내기
  • FAQ
  • 피니엔진 활용 팁
  • 외부강좌

  • 최근 바뀜
  • 최근토론
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
더보기
편집토론기록
갱신주시여기를 가리키는 문서문서 정보

PiniApi:MathExample

목차

  • 1 수학 라이브러리 예제
    • 1.1 개요
    • 1.2 파일 내용
    • 1.3 사용 예제
    • 1.4 지원 매크로 목록
    • 1.5 참고

수학 라이브러리 예제

개요

코사인, 사인 등의 삼각함수와 상용로그, 제곱근 등의 수학함수 등을 피니엔진에서 사용하게 할 수 있는 수학 라이브러리 예제입니다.

사용 방법은, module 폴더에 아래의 내용으로 mathdef.lnx 와 PiniMath.lua 파일 둘 다 작성하신 뒤, 사용하시기 전에 [스크립트 실행="예" 파일명="mathdef.lnx" ] 를 실행하면 됩니다.

  • 모든 삼각함수는 "도" 를 단위로 사용합니다.

파일 내용

mathdef.lnx

피니엔진 LNX 소스코드
<nowiki>
 
#매크로 목록
 
[스크립트 실행="아니오" 파일명="PiniMath.lua" ]
 
!라디안{
"< p class='title'>라디안< /p>도 단위의 각도를 라디안으로 변환합니다."|
{1| 수| ""| 0| "라디안 각도로 바꿀 숫자를 입력합니다."}
}
 
!각도{
"< p class='title'>각도< /p>라디안 단위의 각도를 도 단위로 변환합니다."|
{1| 수| ""| 0| "도 각도로 바꿀 숫자를 입력합니다."}
}
 
!사인{
"< p class='title'>사인< /p>삼각함수 사인에 대한 값을 반환합니다."|
{1| 수| ""| 0| "사인 함수의 입력값입니다."}
}
 
!코사인{
"< p class='title'>코사인< /p>삼각함수 코사인에 대한 값을 반환합니다."|
{1| 수| ""| 0| "코사인 함수의 입력값입니다."}
}
 
!아크사인{
"< p class='title'>아크사인< /p>삼각함수 아크사인에 대한 값을 반환합니다."|
{1| 수| ""| 0| "아크사인 함수의 입력값입니다."}
}
 
!아크코사인{
"< p class='title'>아크코사인< /p>삼각함수 아크코사인에 대한 값을 반환합니다."|
{1| 수| ""| 0| "아크코사인 함수의 입력값입니다."}
}
 
!탄젠트{
"< p class='title'>탄젠트< /p>삼각함수 탄젠트에 대한 값을 반환합니다."|
{1| 수| ""| 0| "탄젠트 함수의 입력값입니다."}
}
 
!아크탄젠트{
"< p class='title'>아크탄젠트< /p>삼각함수 아크탄젠트에 대한 값을 반환합니다. 수1만 있을 경우 수1에 대한 아크탄젠트를, 수1과 수2가 모두 있을 경우 수1/수2 에 대한 아크탄젠트 값을 반환합니다."|
{1| 수1| ""| 0| "아크탄젠트 함수의 입력값입니다."}|
{1| 수2| ""| 0| "아크탄젠트 함수의 입력값입니다."}
}
 
!절대값{
"< p class='title'>절대값< /p>절대값에 대한 값을 반환합니다."|
{1| 수| ""| 0| "절대값을 구할 수 입니다."}
}
 
!자연로그{
"< p class='title'>자연로그< /p>자연로그 함수에 대한 값을 반환합니다."|
{1| 수| ""| 0| "자연로그 함수의 입력값입니다."}
}
 
!상용로그{
"< p class='title'>상용로그< /p>상용로그 함수에 대한 값을 반환합니다."|
{1| 수| ""| 0| "상용로그 함수의 입력값입니다."}
}
 
!초월함수{
"< p class='title'>초월함수< /p>초월함수에 대한 값을 반환합니다."|
{1| 수| ""| 0| "초월함수의 입력값입니다."}
}
 
!제곱승{
"< p class='title'>제곱승< /p>밑수를 승수 수 만큼 곱한 값을 반환합니다."|
{1| 밑| ""| 0| "밑수입니다."}|
{1| 승수| ""| 0| "승수입니다."}
}
 
!최대값{
"< p class='title'>최대값< /p>두 수 중 최대값을 반환합니다."|
{1| 수1| ""| 0| "최대값을 구할 첫번째 수 입니다."}|
{1| 수2| ""| 0| "최대값을 구할 두번째 수 입니다."}
}
 
!최소값{
"< p class='title'>최소값< /p>두 수 중 최소값을 반환합니다."|
{1| 수1| ""| 0| "최소값을 구할 첫번째 수 입니다."}|
{1| 수2| ""| 0| "최소값을 구할 두번째 수 입니다."}
}
 
!제곱근{
"< p class='title'>제곱근< /p>입력된 수의 제곱근을 반환합니다."|
{1| 수| ""| 0| "제곱근을 구할 값입니다."}
}
 
!원주율{
"< p class='title'>원주율< /p>원주율을 반환합니다."|
}
 
!자연상수{
"< p class='title'>자연상수< /p>자연상수를 반환합니다."|
}
 
#매크로 루아함수 목록
 
 
@매크로 라디안:
[[LNX_MATH_RAD]]
 
@매크로 각도:
[[LNX_MATH_DEG]]
 
@매크로 사인:
[[LNX_MATH_SIN]]
 
@매크로 코사인:
[[LNX_MATH_COS]]
 
@매크로 아크사인:
[[LNX_MATH_ASIN]]
 
@매크로 아크코사인:
[[LNX_MATH_ACOS]]
 
@매크로 탄젠트:
[[LNX_MATH_TAN]]
 
@매크로 아크탄젠트:
[[LNX_MATH_ATAN]]
 
@매크로 절대값:
[[LNX_MATH_ABS]]
 
@매크로 자연로그:
[[LNX_MATH_LOG]]
 
@매크로 상용로그:
[[LNX_MATH_LOG10]]
 
@매크로 초월함수:
[[LNX_MATH_EXP]]
 
@매크로 제곱승:
[[LNX_MATH_POW]]
 
@매크로 최대값:
[[LNX_MATH_MAX]]
 
@매크로 최소값:
[[LNX_MATH_MIN]]
 
@매크로 제곱근:
[[LNX_MATH_SQRT]]
 
@매크로 원주율:
[[LNX_MATH_PI]]
 
@매크로 자연상수:
[[LNX_MATH_E]]
 
</nowiki>

PiniMath.lua

피니엔진 LNX 소스코드
--최초 1회만 불리는 코드는 여기다 적어주세요.
 
function LNX_MATH_RAD(vm,stck)
local value = vm:ARGU("라디안","수",0)
vm:returnValue(math.rad(value))
end
 
function LNX_MATH_DEG(vm,stck)
local value = vm:ARGU("각도","수",0)
vm:returnValue(math.deg(value))
end
 
function LNX_MATH_SIN(vm,stck)
local value = vm:ARGU("사인","수",0)
value = math.rad(value)
vm:returnValue(math.sin(value))
end
 
function LNX_MATH_COS(vm,stck)
local value = vm:ARGU("코사인","수",0)
value = math.rad(value)
vm:returnValue(math.cos(value))
end
 
function LNX_MATH_ASIN(vm,stck)
local value = vm:ARGU("아크사인","수",0)
vm:returnValue(math.deg(math.asin(value)))
end
 
function LNX_MATH_ACOS(vm,stck)
local value = vm:ARGU("아크코사인","수",0)
vm:returnValue(math.deg(math.acos(value)))
end
 
function LNX_MATH_TAN(vm,stck)
local value = vm:ARGU("탄젠트","수",0)
value = math.rad(value)
vm:returnValue(math.tan(value))
end
 
function LNX_MATH_ATAN(vm,stck)
local value1 = vm:ARGU("아크탄젠트","수1",0)
local value2 = vm:ARGU("아크탄젠트","수2",nil)
 
if value2 then
vm:returnValue(math.deg(math.atan2(value1,value2)))
else
vm:returnValue(math.deg(math.atan(value1)))
end
end
 
function LNX_MATH_ABS(vm,stck)
local value = vm:ARGU("절대값","수",0)
vm:returnValue(math.abs(value))
end
 
function LNX_MATH_LOG(vm,stck)
local value = vm:ARGU("자연로그","수",0)
vm:returnValue(math.log(value))
end
 
function LNX_MATH_LOG10(vm,stck)
local value = vm:ARGU("상용로그","수",0)
vm:returnValue(math.log10(value))
end
 
function LNX_MATH_EXP(vm,stck)
local value = vm:ARGU("초월함수","수",0)
vm:returnValue(math.exp(value))
end
 
function LNX_MATH_POW(vm,stck)
local base = vm:ARGU("제곱승","밑",0)
local power = vm:ARGU("제곱승","승수",0)
vm:returnValue(math.pow(base,power))
end
 
function LNX_MATH_MAX(vm,stck)
local value1 = vm:ARGU("최대값","수1",0)
local value2 = vm:ARGU("최대값","수2",0)
 
vm:returnValue(math.max(value1,value2))
end
 
function LNX_MATH_MIN(vm,stck)
local value1 = vm:ARGU("최소값","수1",0)
local value2 = vm:ARGU("최소값","수2",0)
 
vm:returnValue(math.min(value1,value2))
end
 
function LNX_MATH_SQRT(vm,stck)
local value = vm:ARGU("제곱근","수",0)
 
vm:returnValue(math.sqrt(value))
end
 
function LNX_MATH_PI(vm,stck)
-- [원주율] 매크로는 인자가 없습니다.
 
vm:returnValue(math.pi)
end
 
function LNX_MATH_E(vm,stck)
-- [자연상수] 매크로는 인자가 없습니다.
 
vm:returnValue(math.exp(1))
end
 
local function m(XVM)
-- 함수 정의용 루아 파일이므로,
-- 아무 것도 하지 않습니다.
end
return m

사용 예제

다음은 예제 코드입니다.

피니엔진 LNX 소스코드
[스크립트 실행="예" 파일명="mathdef.lnx" ]
 
[로그 텍스트="시작" ]
[로그 텍스트=[사인 수=0 ]]
[로그 텍스트=[사인 수=45 ]]
[로그 텍스트=[사인 수=90 ]]
[로그 텍스트=[사인 수=135 ]]
[로그 텍스트=[사인 수=180 ]]
[로그 텍스트=[사인 수=225 ]]
[로그 텍스트=[사인 수=270 ]]
[로그 텍스트=[사인 수=315 ]]
[로그 텍스트=[사인 수=360 ]]
[로그 텍스트="끝" ]

그리고 예제 코드의 실행 결과입니다.

gLDGXfd.png

지원 매크로 목록

다음은 이 라이브러리로 지원하는 매크로 목록입니다.

라디안, 각도, 사인, 코사인, 아크사인, 아크코사인, 탄젠트, 아크탄젠트, 절대값, 자연로그, 상용로그, 초월함수, 제곱승, 최대값, 최소값, 제곱근, 원주율, 자연상수

참고

  • 수학 라이브러리 플러그인을 배포합니다
  • 이 문서는 2015년 8월 28일 (금) 19:14에 마지막으로 편집되었습니다.
  • 별도로 명시하지 않은 경우, 내용은 크리에이티브 커먼즈 저작자표시-동일조건변경허락에 따라 사용할 수 있습니다.
  • 개인정보 정책
  • 피니위키_미러 소개
  • 면책 조항
  • 크리에이티브 커먼즈 저작자표시-동일조건변경허락
  • Powered by MediaWiki
  • Designed by Librewiki

로그인

피니위키_미러에 가입하세요 비밀번호를 잊으셨나요?
다른 방법으로 로그인하기