(새 문서: =수학 라이브러리 예제= ==개요== 코사인, 사인 등의 삼각함수와 상용로그, 제곱근 등의 수학함수 등을 피니엔진에서 사용하게 할 수 있는...) |
(→파일 내용) |
||
(같은 사용자의 중간 판 11개는 보이지 않습니다) | |||
5번째 줄: | 5번째 줄: | ||
사용 방법은, module 폴더에 아래의 내용으로 mathdef.lnx 와 PiniMath.lua 파일 둘 다 작성하신 뒤, | 사용 방법은, module 폴더에 아래의 내용으로 mathdef.lnx 와 PiniMath.lua 파일 둘 다 작성하신 뒤, | ||
− | 사용하시기 전에 [스크립트 실행="예" 파일명="mathdef.lnx" ] 를 실행하면 됩니다. | + | 사용하시기 전에 <code>[스크립트 실행="예" 파일명="mathdef.lnx" ]</code> 를 실행하면 됩니다. |
− | * 모든 삼각함수는 "도" 를 단위로 사용합니다. | + | * 모든 삼각함수는 "도" 를 단위로 사용합니다. |
==파일 내용== | ==파일 내용== | ||
mathdef.lnx | mathdef.lnx | ||
− | <lnx> | + | |
+ | <lnx><nowiki> | ||
#매크로 목록 | #매크로 목록 | ||
18번째 줄: | 19번째 줄: | ||
!라디안{ | !라디안{ | ||
− | "<p class='title'>라디안</p>도 단위의 각도를 라디안으로 변환합니다."| | + | "< p class='title'>라디안< /p>도 단위의 각도를 라디안으로 변환합니다."| |
{1| 수| ""| 0| "라디안 각도로 바꿀 숫자를 입력합니다."} | {1| 수| ""| 0| "라디안 각도로 바꿀 숫자를 입력합니다."} | ||
} | } | ||
!각도{ | !각도{ | ||
− | "<p class='title'>각도</p>라디안 단위의 각도를 도 단위로 변환합니다."| | + | "< p class='title'>각도< /p>라디안 단위의 각도를 도 단위로 변환합니다."| |
{1| 수| ""| 0| "도 각도로 바꿀 숫자를 입력합니다."} | {1| 수| ""| 0| "도 각도로 바꿀 숫자를 입력합니다."} | ||
} | } | ||
!사인{ | !사인{ | ||
− | "<p class='title'>사인</p>삼각함수 사인에 대한 값을 반환합니다."| | + | "< p class='title'>사인< /p>삼각함수 사인에 대한 값을 반환합니다."| |
{1| 수| ""| 0| "사인 함수의 입력값입니다."} | {1| 수| ""| 0| "사인 함수의 입력값입니다."} | ||
} | } | ||
!코사인{ | !코사인{ | ||
− | "<p class='title'>코사인</p>삼각함수 코사인에 대한 값을 반환합니다."| | + | "< p class='title'>코사인< /p>삼각함수 코사인에 대한 값을 반환합니다."| |
{1| 수| ""| 0| "코사인 함수의 입력값입니다."} | {1| 수| ""| 0| "코사인 함수의 입력값입니다."} | ||
} | } | ||
!아크사인{ | !아크사인{ | ||
− | "<p class='title'>아크사인</p>삼각함수 아크사인에 대한 값을 반환합니다."| | + | "< p class='title'>아크사인< /p>삼각함수 아크사인에 대한 값을 반환합니다."| |
{1| 수| ""| 0| "아크사인 함수의 입력값입니다."} | {1| 수| ""| 0| "아크사인 함수의 입력값입니다."} | ||
} | } | ||
!아크코사인{ | !아크코사인{ | ||
− | "<p class='title'>아크코사인</p>삼각함수 아크코사인에 대한 값을 반환합니다."| | + | "< p class='title'>아크코사인< /p>삼각함수 아크코사인에 대한 값을 반환합니다."| |
{1| 수| ""| 0| "아크코사인 함수의 입력값입니다."} | {1| 수| ""| 0| "아크코사인 함수의 입력값입니다."} | ||
} | } | ||
!탄젠트{ | !탄젠트{ | ||
− | "<p class='title'>탄젠트</p>삼각함수 탄젠트에 대한 값을 반환합니다."| | + | "< p class='title'>탄젠트< /p>삼각함수 탄젠트에 대한 값을 반환합니다."| |
{1| 수| ""| 0| "탄젠트 함수의 입력값입니다."} | {1| 수| ""| 0| "탄젠트 함수의 입력값입니다."} | ||
} | } | ||
!아크탄젠트{ | !아크탄젠트{ | ||
− | "<p class='title'>아크탄젠트</p>삼각함수 아크탄젠트에 대한 값을 반환합니다. 수1만 있을 경우 수1에 대한 아크탄젠트를, 수1과 수2가 모두 있을 경우 수1/수2 에 대한 아크탄젠트 값을 반환합니다."| | + | "< p class='title'>아크탄젠트< /p>삼각함수 아크탄젠트에 대한 값을 반환합니다. 수1만 있을 경우 수1에 대한 아크탄젠트를, 수1과 수2가 모두 있을 경우 수1/수2 에 대한 아크탄젠트 값을 반환합니다."| |
{1| 수1| ""| 0| "아크탄젠트 함수의 입력값입니다."}| | {1| 수1| ""| 0| "아크탄젠트 함수의 입력값입니다."}| | ||
{1| 수2| ""| 0| "아크탄젠트 함수의 입력값입니다."} | {1| 수2| ""| 0| "아크탄젠트 함수의 입력값입니다."} | ||
59번째 줄: | 60번째 줄: | ||
!절대값{ | !절대값{ | ||
− | "<p class='title'>절대값</p>절대값에 대한 값을 반환합니다."| | + | "< p class='title'>절대값< /p>절대값에 대한 값을 반환합니다."| |
{1| 수| ""| 0| "절대값을 구할 수 입니다."} | {1| 수| ""| 0| "절대값을 구할 수 입니다."} | ||
} | } | ||
!자연로그{ | !자연로그{ | ||
− | "<p class='title'>자연로그</p>자연로그 함수에 대한 값을 반환합니다."| | + | "< p class='title'>자연로그< /p>자연로그 함수에 대한 값을 반환합니다."| |
{1| 수| ""| 0| "자연로그 함수의 입력값입니다."} | {1| 수| ""| 0| "자연로그 함수의 입력값입니다."} | ||
} | } | ||
!상용로그{ | !상용로그{ | ||
− | "<p class='title'>상용로그</p>상용로그 함수에 대한 값을 반환합니다."| | + | "< p class='title'>상용로그< /p>상용로그 함수에 대한 값을 반환합니다."| |
{1| 수| ""| 0| "상용로그 함수의 입력값입니다."} | {1| 수| ""| 0| "상용로그 함수의 입력값입니다."} | ||
} | } | ||
!초월함수{ | !초월함수{ | ||
− | "<p class='title'>초월함수</p>초월함수에 대한 값을 반환합니다."| | + | "< p class='title'>초월함수< /p>초월함수에 대한 값을 반환합니다."| |
{1| 수| ""| 0| "초월함수의 입력값입니다."} | {1| 수| ""| 0| "초월함수의 입력값입니다."} | ||
} | } | ||
!제곱승{ | !제곱승{ | ||
− | "<p class='title'>제곱승</p>밑수를 승수 수 만큼 곱한 값을 반환합니다."| | + | "< p class='title'>제곱승< /p>밑수를 승수 수 만큼 곱한 값을 반환합니다."| |
{1| 밑| ""| 0| "밑수입니다."}| | {1| 밑| ""| 0| "밑수입니다."}| | ||
{1| 승수| ""| 0| "승수입니다."} | {1| 승수| ""| 0| "승수입니다."} | ||
85번째 줄: | 86번째 줄: | ||
!최대값{ | !최대값{ | ||
− | "<p class='title'>최대값</p>두 수 중 최대값을 반환합니다."| | + | "< p class='title'>최대값< /p>두 수 중 최대값을 반환합니다."| |
{1| 수1| ""| 0| "최대값을 구할 첫번째 수 입니다."}| | {1| 수1| ""| 0| "최대값을 구할 첫번째 수 입니다."}| | ||
{1| 수2| ""| 0| "최대값을 구할 두번째 수 입니다."} | {1| 수2| ""| 0| "최대값을 구할 두번째 수 입니다."} | ||
91번째 줄: | 92번째 줄: | ||
!최소값{ | !최소값{ | ||
− | "<p class='title'>최소값</p>두 수 중 최소값을 반환합니다."| | + | "< p class='title'>최소값< /p>두 수 중 최소값을 반환합니다."| |
{1| 수1| ""| 0| "최소값을 구할 첫번째 수 입니다."}| | {1| 수1| ""| 0| "최소값을 구할 첫번째 수 입니다."}| | ||
{1| 수2| ""| 0| "최소값을 구할 두번째 수 입니다."} | {1| 수2| ""| 0| "최소값을 구할 두번째 수 입니다."} | ||
97번째 줄: | 98번째 줄: | ||
!제곱근{ | !제곱근{ | ||
− | "<p class='title'>제곱근</p>입력된 수의 제곱근을 반환합니다."| | + | "< p class='title'>제곱근< /p>입력된 수의 제곱근을 반환합니다."| |
{1| 수| ""| 0| "제곱근을 구할 값입니다."} | {1| 수| ""| 0| "제곱근을 구할 값입니다."} | ||
} | } | ||
!원주율{ | !원주율{ | ||
− | "<p class='title'>원주율</p>원주율을 반환합니다."| | + | "< p class='title'>원주율< /p>원주율을 반환합니다."| |
} | } | ||
!자연상수{ | !자연상수{ | ||
− | "<p class='title'>자연상수</p>자연상수를 반환합니다."| | + | "< p class='title'>자연상수< /p>자연상수를 반환합니다."| |
} | } | ||
166번째 줄: | 167번째 줄: | ||
[[LNX_MATH_E]] | [[LNX_MATH_E]] | ||
+ | </nowiki> | ||
</lnx> | </lnx> | ||
PiniMath.lua | PiniMath.lua | ||
− | < | + | <lnx> |
--최초 1회만 불리는 코드는 여기다 적어주세요. | --최초 1회만 불리는 코드는 여기다 적어주세요. | ||
285번째 줄: | 287번째 줄: | ||
return m | return m | ||
− | </ | + | </lnx> |
− | |||
==사용 예제== | ==사용 예제== | ||
307번째 줄: | 308번째 줄: | ||
그리고 예제 코드의 실행 결과입니다. | 그리고 예제 코드의 실행 결과입니다. | ||
− | http://i.imgur.com/gLDGXfd.png | + | |
+ | http://i.imgur.com/gLDGXfd.png | ||
==지원 매크로 목록== | ==지원 매크로 목록== | ||
다음은 이 라이브러리로 지원하는 매크로 목록입니다. | 다음은 이 라이브러리로 지원하는 매크로 목록입니다. | ||
+ | |||
라디안, 각도, 사인, 코사인, 아크사인, 아크코사인, 탄젠트, 아크탄젠트, 절대값, 자연로그, 상용로그, 초월함수, 제곱승, 최대값, 최소값, 제곱근, 원주율, 자연상수 | 라디안, 각도, 사인, 코사인, 아크사인, 아크코사인, 탄젠트, 아크탄젠트, 절대값, 자연로그, 상용로그, 초월함수, 제곱승, 최대값, 최소값, 제곱근, 원주율, 자연상수 | ||
+ | |||
+ | ==참고== | ||
+ | * [http://nooslab.com/piniengine/bbs/board.php?bo_table=TIPBoard&wr_id=196 수학 라이브러리 플러그인을 배포합니다] |
2015년 8월 28일 (금) 19:14 기준 최신판
수학 라이브러리 예제
개요
코사인, 사인 등의 삼각함수와 상용로그, 제곱근 등의 수학함수 등을 피니엔진에서 사용하게 할 수 있는 수학 라이브러리 예제입니다.
사용 방법은, 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 ]] |
[로그 텍스트="끝" ] |
그리고 예제 코드의 실행 결과입니다.
지원 매크로 목록
다음은 이 라이브러리로 지원하는 매크로 목록입니다.
라디안, 각도, 사인, 코사인, 아크사인, 아크코사인, 탄젠트, 아크탄젠트, 절대값, 자연로그, 상용로그, 초월함수, 제곱승, 최대값, 최소값, 제곱근, 원주율, 자연상수