xxxxxxxxxx
104
let words = [ "CRITICAL DESIGN" , "SPECULATIVE DESIGN" , "MEDIA ARCHEOLOGY" , "EXPERIENTIAL DESIGN" , "CO-IMMERSIVE INSTALLATION" , "HYPERREALITY " , "HUMAN MACHINE INTERACTION " , "EMBODIED INTERACTION" , "PHYSICAL INTERACTION" , "CROSS-MATERIAL INTERACTION " , "IOT" , "SENSOR TECHNOLOGIES" , "EMBEDDED SYSTEMS" , "TELEPRESENCE" , "NETWORKED EXPERIENCES" , "MACHINE PERCEPTION" , "ARTIFICIAL INTELLIGENCE" , "AI ART" , "SYNTHETIC MEDIA" , "PROCEDURAL GRAPHICS" , "PROCEDURAL AUDIO" , "SPATIAL SOUND" , "GENERATIVE STORYTELLING" , "DATA BASED ART" , "DATA PROCESSING" , "PROJECTION MAPPING" , "ROBOTICS" , "MECHATRONICS" , "MULTISENSORIAL DESIGN" , "TAILORED SELF-EXECUTED DESIGN & PRODUCTION" , "HAPTIC INTERFACES" , "ARTIFICIAL INTELLIGENCE" , "MARKET RESEARCH" , "CLOUD COMPUTING" , "SENSORS" , "CONVERGENCE" , "MONITORING" , "STARTUPS" , "DIGITAL TWINS" , "MULTIMEDIA" , "HAPTICS" , "MIXED REALITY" , "TACTICLE INTERNET" , "EDGE COMPUTING" , "VIDEOS" , "5G MOBILE COMMUNICATION" , "SERVERS" , "AUGMENTED REALITY" , "INTERNET" , "LONG TERM EVOLUTION" , "MOBILE COMPUTING" , "MOBILE RADIO" , "MOBILE USERS" , "AR/VR TECHNOLOGIES" , "RESEARCH COMMUNITY" , "TACTILE INTERNET APPLICATIONS" , "MASSIVE COMPUTATIONAL CAPABILITY" , "HIGH COMMUNICATION BANDWIDTH" , "ULTRA-LOW LATENCY" , "FIFTH GENERATION NETWORKS" , "EDGE CACHING" , "MOBILE EDGE COMPUTING" , "AR/VR APPLICATIONS" , "MOBILE AR/VR" , "VIRTUAL REALITY APPLICATIONS" , "WIRELESS MOBILE NETWORKS" , "LONG TERM EVOLUTION NETWORKS" , "5G TECHNOLOGIES" , "TACTILE INTERNET" , "THREE-DIMENSIONAL DISPLAYS" , "TWO DIMENSIONAL DISPLAYS" , "FEATURE EXTRACTION" , "STREAMING MEDIA" , "REDUNDANCY" , "VIDEO CODING" , "DATA COMPRESSION" , "IMAGE SEQUENCES" , "MULTIPLE PREDICTION MODES" , "ADAPTIVE MODE SELECTION METHOD" , "KEY-POINT SEQUENCE LOSSLESS COMPRESSION" , "INTELLIGENT VIDEO ANALYSIS" , "URBAN COMPUTING" , "RAW VIDEOS" , "LOSSLESS KEY-POINT SEQUENCE COMPRESSION APPROACH" , "FEATURE CODING" , "PREDICT-AND-ENCODE STRATEGY" , "DEEP LEARNING" , "NEURAL NETWORKS" , "BIG DATA" , "SPEECH RECOGNITION" , "DATA MINING" , "DECISION MAKING" , "LEARNING (ARTIFICIAL INTELLIGENCE)" , "MULTIMEDIA COMPUTING" , "NEURAL NETS" , "DEEP NEURAL NETWORKS" , "MULTIMEDIA DATA ANALYSIS" , "UNSTRUCTURED DATA" , "RECENT MULTIMEDIA DEEP LEARNING METHODS" , "REMARKABLE RESULTS" , "DEEP LEARNING CHALLENGES" , "MULTIMEDIA BIG DATA" , "MEASUREMENT" , "EMOTION RECOGNITION" , "VISUALIZATION" , "SUPPORT VECTOR MACHINES" , "TASK ANALYSIS" , "RADIAL BASIS FUNCTION NETWORKS" , "VIDEO SIGNAL PROCESSING" , "CREMA-D DATASETS" , "ENTERFACE" , "SUPPORT VECTOR MACHINE" , "MERML" , "RADIAL BASIS FUNCTION" , "MULTIMODAL EMOTION RECOGNITION METRIC LEARNING" , "MACHINE LEARNING" , "AUDIO-VIDEO EMOTION RECOGNITION" , "DIVERSE MODALITIES" , "MULTIMODAL LEARNING" , "AUTOMATIC EMOTION RECOGNITION" , "MULTIPLE CHANNELS" , "AUDIO-VISUAL EMOTION RECOGNITION" , "METRIC LEARNING" , "CONVOLUTIONAL NEURAL NETWORKS" , "FISHER VECTORS" , "DECODING" , "COUPLINGS" , "LEARNING SYSTEMS" , "TRAINING DATA" , "IMAGE REPRESENTATION" , "POSE ESTIMATION" , "BLOCK-BASED REPRESENTATION LEARNING METHOD" , "PERSON REIDENTIFICATION" , "POSTURE CHANGES" , "PART-BASED NONDIRECT COUPLING REPRESENTATION LEARNING METHOD" , "PART-BASED NONDIRECT COUPLING EMBEDDED GAN" , "PGAN" , "PERSON RE-ID" , "IMAGE RECOGNITION" , "GEOGRAPHIC INFORMATION SYSTEMS" , "IMAGE PROCESSING" , "IMAGE RETRIEVAL" , "QUERY PROCESSING" , "PRIMITIVE TRIPLET LOSS" , "QUINTUPLET LOSS" , "LARGE-SCALE VISUAL GEOLOCALIZATION" , "ARTIFICIAL INTELLIGENCE TECHNOLOGY" , "GEOLOCATION" , "QUERY IMAGES" , "METRIC LEARNING LOSS" , "LSVGL FRAMEWORK" , "VISUAL GEO-LOCALIZATION" , "TRIPLET LOSS" , "DEEP NEURAL NETWORK" , "IMAGE SEGMENTATION" , "SEMANTICS" , "ADAPTATION MODELS" , "LOGIC GATES" , "AUTOMOBILES" , "COMPUTER SCIENCE" , "AUTONMOUS AUTOMOBILES" , "MOBILE ROBOTS" , "OBJECT DETECTION" , "BACKGROUND CUES" , "MASK-AWARE GATED DISCRIMINATOR" , "BACKGROUND MASKS" , "BINARY MASKING" , "DOMAIN ADAPTATION" , "SELF-DRIVING CARS" , "URBAN SCENE" , "SEGMENTATION LABELS" , "SYNTHETIC DATASETS" , "ADVERSARIAL TRAINING" , "BACKGROUND OBJECTS" , "FOREGROUND OBJECTS" , "ADAPTATION METHOD" , "SEMANTIC SEGMENTATION MODELS" , "FOREGROUND CUES" , "GENERATORS" , "ROADS" , "UNMANNED VEHICLES" , "IMAGE RECONSTRUCTION" , "IMAGE SENSORS" , "REMOTELY OPERATED VEHICLES" , "ROAD TRAFFIC" , "ROAD VEHICLES" , "ROBOT VISION" , "TRAFFIC ENGINEERING COMPUTING" , "URBAN ROAD IMAGES" , "GENERATIVE ADVERSARIAL NETWORKS" , "IMAGE STYLE" , "URBAN IMAGE TRANSFERS" , "WINTER TRANSFERS" , "IMAGE STRUCTURAL INFORMATION" , "IMAGE DISTORTION" , "STYLE TRANSFER" , "DRIVING BEHAVIOR" ]
let splittedWord = []
let wordIndex = 0
let letterIndex = 0
let showinstruction = true
let clearScreen = false
let letterSize = 20
let clickedCont = 0
let curX = 0, curY = 0
function setup() {
createCanvas(window.innerWidth, window.innerHeight);
fullscreen()
textAlign(CENTER, CENTER);
background(20)
takeNewWord()
}
function takeNewWord() {
letterIndex = 0;
wordIndex = int(random(0, words.length - 1))
splittedWord = words[wordIndex].split('')
}
function showInstruction(){
background(20)
fill(255)
textSize(12);
text('click and drag to change the word', curX, curY - 20);
}
function drawText(){
if (mousePressed) {
let d = dist(curX, curY, mouseX, mouseY);
textSize(20 + d / 2);
stepSize = textWidth(splittedWord[letterIndex]) * 1.2
if (d > stepSize) {
let angle = atan2(mouseY - curY, mouseX - curX);
push();
translate(curX, curY);
rotate(angle)
text(splittedWord[letterIndex], 0, 0);
pop();
letterIndex++;
if (letterIndex > splittedWord.length - 1) {
letterIndex = 0;
}
curX += cos(angle) * stepSize;
curY += sin(angle) * stepSize;
}
}
}
function draw() {
if(clearScreen){
background(20,3)
}
if (!showinstruction && mousePressed) {
drawText()
}
if (showinstruction) {
background(20)
fill(255)
textSize(24);
text('click and drag to change the word', window.innerWidth/2, window.height/2);
}
}
function mousePressed() {
if (clickedCont > 9){
clickedCont = 0
background(20)
}
if(showinstruction){
background(20)
}
clearScreen = false
showinstruction = false
takeNewWord()
}
function mouseReleased(){
clickedCont++
clearScreen = true
}
function mouseMoved() {
curX = mouseX
curY = mouseY
}